{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-07-31T02:41:44.925533Z",
     "iopub.status.busy": "2022-07-31T02:41:44.924917Z",
     "iopub.status.idle": "2022-07-31T02:41:45.017940Z",
     "shell.execute_reply": "2022-07-31T02:41:45.017030Z"
    },
    "origin_pos": 4,
    "slideshow": {
     "slide_type": "notes"
    },
    "tab": [
     "pytorch"
    ]
   },
   "outputs": [],
   "source": [
    "import torch\n",
    "from torch import nn\n",
    "import matplotlib.pyplot as plt\n",
    "from IPython.core.interactiveshell import InteractiveShell\n",
    "InteractiveShell.ast_node_interactivity = \"all\"\n",
    "plt.style.use('seaborn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "<div class=\"jumbotron\">\n",
    "    <p class=\"display-1 h1\">多层感知机的从零开始实现</p>\n",
    "    <hr class=\"my-4\">\n",
    "    <p>主讲：李岩</p>\n",
    "    <p>管理学院</p>\n",
    "    <p>liyan@cumtb.edu.cn</p>\n",
    "</div>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "- 感知机的不足：不能处理抑或问题（XOR）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "<center><img src=\"../img/4_multilayer-perceptrons/XOR.png\" width=60%></center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 多层感知机基础"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 输入层\n",
    "    - 矩阵$\\mathbf{X} \\in \\mathbb{R}^{n \\times d}$表示$n$个样本的小批量，每个样本具有$d$个输入特征"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 隐藏层\n",
    "    - 具有$h$个隐藏单元，$\\mathbf{H} \\in \\mathbb{R}^{n \\times h}$表示隐藏层的输出，称为**隐藏表示**（hidden representations），也被称为**隐藏层变量**（hidden-layer variable）或**隐藏变量**（hidden variable）\n",
    "    - 隐藏层权重$\\mathbf{W}^{(1)} \\in \\mathbb{R}^{d \\times h}$\n",
    "    - 隐藏层偏置$\\boldsymbol{b}^{(1)} \\in \\mathbb{R}^{1 \\times h}$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 输出层\n",
    "    - 输出具有$q$个类别，用$\\mathbf{O} \\in \\mathbb{R}^{n \\times q}$表示\n",
    "    - 输出层权重$\\mathbf{W}^{(2)} \\in \\mathbb{R}^{h \\times q}$\n",
    "    - 输出层偏置$\\boldsymbol{b}^{(2)} \\in \\mathbb{R}^{1 \\times q}$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "- 单隐藏层的输出可以表达为\n",
    "\n",
    "$$\n",
    "\\begin{aligned}\n",
    "    \\mathbf{H} & = \\mathbf{X} \\mathbf{W}^{(1)} + \\boldsymbol{b}^{(1)}, \\\\\n",
    "    \\mathbf{O} & = \\mathbf{H}\\mathbf{W}^{(2)} + \\boldsymbol{b}^{(2)}.\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 对于任意权重值，只需合并隐藏层，便可产生具有参数$\\mathbf{W} = \\mathbf{W}^{(1)}\\mathbf{W}^{(2)}$和$\\boldsymbol{b} = \\boldsymbol{b}^{(1)} \\mathbf{W}^{(2)} + \\boldsymbol{b}^{(2)}$的等价单层模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "\\begin{definition}\\label{def:activationFun}\n",
    "**激活函数**（activation function）通过计算加权和并加上偏置来确定神经元是否应该被激活，它们将输入信号转换为输出的可微运算\n",
    "\\end{definition}\n",
    "\n",
    "- 激活函数通常是非线形函数，用$\\sigma$表示\n",
    "- 激活函数的输出（$\\sigma(\\cdot)$）被称为**活性值**（activations）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "$$\n",
    "\\begin{aligned}\n",
    "    \\mathbf{H} & = \\sigma(\\mathbf{X} \\mathbf{W}^{(1)} + \\boldsymbol{b}^{(1)}), \\\\\n",
    "    \\mathbf{O} & = \\mathbf{H}\\mathbf{W}^{(2)} + \\boldsymbol{b}^{(2)}.\\\\\n",
    "\\end{aligned}\n",
    "$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "\\begin{theorem}\\label{theo:universalApprox}\n",
    "通用近似定理（Universal Approximation Theorem）：一个只包含一个隐藏层并且拥有有限个神经元的前馈网络，能以任意精度逼近任意预定的连续函数。\n",
    "\\end{theorem}\n",
    "\n",
    "> Kurt Hornik, Maxwell Stinchcombe, Halbert White. Multilayer feedforward networks are universal approximators. Neural Networks, 1989, 2(5): 359-366. https://doi.org/10.1016/0893-6080(89)90020-8.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "在给定激活函数和网络结构限制的条件下，神经网络集合在所有连续函数组成的空间中是稠密的。这意味着：  \n",
    "- 对于任何连续函数$f(x)$ \n",
    "- 对于任意小的误差$\\epsilon>0$\n",
    "- 都存在一个神经网络$N(x)$\n",
    "- 使得$|f(x)-N(x)|<\\epsilon$对所有$x$都成立"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 尽管通用近似定理保证单个隐藏层的神经网络可以学习任何函数，但不应试图用这个神经网络解决所有问题\n",
    "- 通过**更深**（*不是更广*）的网络可以更容易逼近许多函数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 分类问题"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "|问题类型|说明|例子|\n",
    "|---|---|---|\n",
    "|二分类（binary）|目标只有两类|违约v.s.未违约|\n",
    "|多分类（multi-class）|目标有多个类别|Fashion-MNIST|\n",
    "|多标签（multi-label）|目标可以属于多个分类维度|百科文章的所属领域|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 多分类绩效衡量"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 给定下面的三分类的混淆矩阵\n",
    "\n",
    "<center><img src=\"../img/4_multilayer-perceptrons/tp-fp-fn-table.png\" width=60%></center>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 每个类别的Precision为"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "$$Precision_{birds}=\\frac{TP_{birds}}{TP_{birds}+FP_{birds}}=\\frac{1}{0+1}=1$$\n",
    "$$Precision_{cats}=\\frac{TP_{cats}}{TP_{cats}+FP_{cats}}=\\frac{4}{4+1}=0.8$$\n",
    "$$Precision_{dogs}=\\frac{TP_{dogs}}{TP_{dogs}+FP_{dogs}}=\\frac{2}{2+1}=0.667$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- **Micro-averaged Precision**：整体分类系统的Precision\n",
    "\n",
    "$$\\text{Micro-averaged Precision}=\\frac{TP_{total}}{TP_{total}+FP_{total}}=\\frac{7}{7+3}=0.7$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- **Macro-averaged Precision**：所有类别Precision的均值\n",
    "\n",
    "$$\\text{Macro-averaged Precision}=\\frac{1}{3}\\bigl(Precision_{birds}+Precision_{cats}+Precision_{dogs}\\bigr)=0.822$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- **Weighted-averaged Precision**：所有类别Precision的加权平均\n",
    "    - $N_{birds}=2, N_{cats}=4, N_{dogs}=3$\n",
    "\n",
    "$$\\text{Weighted-averaged Precision}=\\frac{Precision_{birds}\\times{N_{birds}}+Precision_{cats}\\times{N_{cats}}+Precision_{dogs}\\times{N_{dogs}}}{N_{birds}+N_{cats}+N_{dogs}}=0.8$$"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 处理分类问题的多层感知机模型架构（architecture）"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "|超参|二分类问题|多分类问题|\n",
    "|---|---|---|\n",
    "|输入层形状|输入特征数量|同二分类|\n",
    "|隐藏层|最小1，最大不限|同二分类|\n",
    "|每个隐藏层的神经元|通常10到512个|同二分类|\n",
    "|输出层形状|1个|每个类别1个|\n",
    "|隐藏层激活函数|通常是`ReLU`，也可以是其他|同二分类|\n",
    "|输出层激活函数|`Sigmoid`函数，`torch.sigmoid`|`Softmax`函数，`torch.softmax`|\n",
    "|损失函数|二元交叉熵`torch.nn.BCEloss`|交叉熵`torch.nn.CrossEntropyLoss`|\n",
    "|优化器|`SGD`，`Adam`|同二分类|"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 读取数据"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 仍然用Fashion-MNIST数据集"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "import sys\n",
    "sys.path.append('/home/teaching/slides/deeplearning/3_linear_network')\n",
    "# 将load_data_fashion_mnist函数所在路径加入系统环境变量路径中"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "from softmax_regression_scratch import load_data_fashion_mnist\n",
    "batch_size = 256\n",
    "train_iter, test_iter = load_data_fashion_mnist(batch_size)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 建立模型"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- Fashion-MNIST中的每个图像由$28 \\times 28 = 784$个灰度像素值组成\n",
    "- 所有图像共分为10个类别\n",
    "- 忽略像素之间的空间结构，可以将每个图像视为具有784个输入特征和10个类的简单分类数据集"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 实现一个具有**单隐藏层**（超参）的多层感知机，包含**256个隐藏单元**（超参）\n",
    "- 通常选择2的若干次幂作为层的宽度，可以在计算上更高效"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 实现ReLU激活函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "def relu(X):\n",
    "    a = torch.zeros_like(X)\n",
    "    return torch.max(X, a)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "- 最受欢迎的激活函数是**修正线性单元**（Rectified linear unit，**ReLU**）\n",
    "- ReLU提供了一种非常简单的非线性变换"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "给定元素$x$，ReLU函数被定义为该元素与0的最大值：\n",
    "\n",
    "$$\\operatorname{ReLU}(x) = \\max(x, 0).$$"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"180.875938pt\" version=\"1.1\" viewBox=\"0 0 320.215 180.875938\" width=\"320.215pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-11-19T20:48:19.790216</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 180.875938 \n",
       "L 320.215 180.875938 \n",
       "L 320.215 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 34.015 143.1 \n",
       "L 313.015 143.1 \n",
       "L 313.015 7.2 \n",
       "L 34.015 7.2 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 46.696818 143.1 \n",
       "L 46.696818 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_2\"/>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- −8 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(40.996037 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 4.9375 29.6875 \n",
       "L 4.9375 36.8125 \n",
       "L 53.515625 36.8125 \n",
       "L 53.515625 29.6875 \n",
       "z\n",
       "\" id=\"LiberationSans-8722\"/>\n",
       "        <path d=\"M 51.265625 19.1875 \n",
       "Q 51.265625 14.796875 49.875 11.109375 \n",
       "Q 48.484375 7.421875 45.625 4.734375 \n",
       "Q 42.78125 2.046875 38.328125 0.53125 \n",
       "Q 33.890625 -0.984375 27.828125 -0.984375 \n",
       "Q 21.78125 -0.984375 17.359375 0.53125 \n",
       "Q 12.9375 2.046875 10.03125 4.703125 \n",
       "Q 7.125 7.375 5.734375 11.0625 \n",
       "Q 4.34375 14.75 4.34375 19.09375 \n",
       "Q 4.34375 22.859375 5.484375 25.78125 \n",
       "Q 6.640625 28.71875 8.5625 30.828125 \n",
       "Q 10.5 32.953125 12.96875 34.25 \n",
       "Q 15.4375 35.546875 18.0625 35.984375 \n",
       "L 18.0625 36.1875 \n",
       "Q 15.1875 36.859375 12.90625 38.375 \n",
       "Q 10.640625 39.890625 9.09375 42.015625 \n",
       "Q 7.5625 44.140625 6.75 46.71875 \n",
       "Q 5.953125 49.3125 5.953125 52.203125 \n",
       "Q 5.953125 55.8125 7.34375 59 \n",
       "Q 8.734375 62.203125 11.46875 64.625 \n",
       "Q 14.203125 67.046875 18.25 68.4375 \n",
       "Q 22.3125 69.828125 27.640625 69.828125 \n",
       "Q 33.25 69.828125 37.375 68.40625 \n",
       "Q 41.5 67 44.203125 64.578125 \n",
       "Q 46.921875 62.15625 48.234375 58.9375 \n",
       "Q 49.5625 55.71875 49.5625 52.09375 \n",
       "Q 49.5625 49.265625 48.75 46.671875 \n",
       "Q 47.953125 44.09375 46.40625 41.96875 \n",
       "Q 44.875 39.84375 42.59375 38.34375 \n",
       "Q 40.328125 36.859375 37.359375 36.28125 \n",
       "L 37.359375 36.078125 \n",
       "Q 40.328125 35.59375 42.859375 34.296875 \n",
       "Q 45.40625 33.015625 47.265625 30.890625 \n",
       "Q 49.125 28.765625 50.1875 25.828125 \n",
       "Q 51.265625 22.90625 51.265625 19.1875 \n",
       "z\n",
       "M 40.4375 51.609375 \n",
       "Q 40.4375 54.203125 39.765625 56.34375 \n",
       "Q 39.109375 58.5 37.59375 60.03125 \n",
       "Q 36.078125 61.578125 33.640625 62.421875 \n",
       "Q 31.203125 63.28125 27.640625 63.28125 \n",
       "Q 24.171875 63.28125 21.78125 62.421875 \n",
       "Q 19.390625 61.578125 17.84375 60.03125 \n",
       "Q 16.3125 58.5 15.625 56.34375 \n",
       "Q 14.9375 54.203125 14.9375 51.609375 \n",
       "Q 14.9375 49.5625 15.46875 47.40625 \n",
       "Q 16.015625 45.265625 17.421875 43.5 \n",
       "Q 18.84375 41.75 21.328125 40.625 \n",
       "Q 23.828125 39.5 27.734375 39.5 \n",
       "Q 31.890625 39.5 34.40625 40.625 \n",
       "Q 36.921875 41.75 38.25 43.5 \n",
       "Q 39.59375 45.265625 40.015625 47.40625 \n",
       "Q 40.4375 49.5625 40.4375 51.609375 \n",
       "z\n",
       "M 42.140625 20.015625 \n",
       "Q 42.140625 22.515625 41.453125 24.828125 \n",
       "Q 40.765625 27.15625 39.109375 28.9375 \n",
       "Q 37.453125 30.71875 34.640625 31.8125 \n",
       "Q 31.84375 32.90625 27.640625 32.90625 \n",
       "Q 23.78125 32.90625 21.0625 31.8125 \n",
       "Q 18.359375 30.71875 16.671875 28.90625 \n",
       "Q 14.984375 27.09375 14.203125 24.71875 \n",
       "Q 13.421875 22.359375 13.421875 19.828125 \n",
       "Q 13.421875 16.65625 14.203125 14.03125 \n",
       "Q 14.984375 11.421875 16.6875 9.546875 \n",
       "Q 18.40625 7.671875 21.1875 6.640625 \n",
       "Q 23.96875 5.609375 27.9375 5.609375 \n",
       "Q 31.9375 5.609375 34.671875 6.640625 \n",
       "Q 37.40625 7.671875 39.0625 9.546875 \n",
       "Q 40.71875 11.421875 41.421875 14.078125 \n",
       "Q 42.140625 16.75 42.140625 20.015625 \n",
       "z\n",
       "\" id=\"LiberationSans-56\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-8722\"/>\n",
       "       <use x=\"58.398438\" xlink:href=\"#LiberationSans-56\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_3\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 78.600764 143.1 \n",
       "L 78.600764 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_4\"/>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- −6 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(72.899983 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 51.21875 22.515625 \n",
       "Q 51.21875 17.328125 49.78125 13 \n",
       "Q 48.34375 8.6875 45.53125 5.578125 \n",
       "Q 42.71875 2.484375 38.5625 0.75 \n",
       "Q 34.421875 -0.984375 29 -0.984375 \n",
       "Q 23 -0.984375 18.5 1.3125 \n",
       "Q 14.015625 3.609375 11.03125 7.921875 \n",
       "Q 8.0625 12.25 6.5625 18.53125 \n",
       "Q 5.078125 24.8125 5.078125 32.8125 \n",
       "Q 5.078125 42 6.765625 48.921875 \n",
       "Q 8.453125 55.859375 11.625 60.5 \n",
       "Q 14.796875 65.140625 19.359375 67.484375 \n",
       "Q 23.921875 69.828125 29.6875 69.828125 \n",
       "Q 33.203125 69.828125 36.28125 69.09375 \n",
       "Q 39.359375 68.359375 41.875 66.71875 \n",
       "Q 44.390625 65.09375 46.28125 62.40625 \n",
       "Q 48.1875 59.71875 49.3125 55.8125 \n",
       "L 40.921875 54.296875 \n",
       "Q 39.546875 58.734375 36.546875 60.71875 \n",
       "Q 33.546875 62.703125 29.59375 62.703125 \n",
       "Q 25.984375 62.703125 23.046875 60.984375 \n",
       "Q 20.125 59.28125 18.0625 55.875 \n",
       "Q 16.015625 52.484375 14.90625 47.359375 \n",
       "Q 13.8125 42.234375 13.8125 35.40625 \n",
       "Q 16.21875 39.84375 20.5625 42.15625 \n",
       "Q 24.90625 44.484375 30.515625 44.484375 \n",
       "Q 35.203125 44.484375 39.015625 42.96875 \n",
       "Q 42.828125 41.453125 45.53125 38.59375 \n",
       "Q 48.25 35.75 49.734375 31.671875 \n",
       "Q 51.21875 27.59375 51.21875 22.515625 \n",
       "z\n",
       "M 42.28125 22.125 \n",
       "Q 42.28125 25.6875 41.40625 28.5625 \n",
       "Q 40.53125 31.453125 38.765625 33.46875 \n",
       "Q 37.015625 35.5 34.421875 36.59375 \n",
       "Q 31.84375 37.703125 28.421875 37.703125 \n",
       "Q 26.03125 37.703125 23.578125 36.984375 \n",
       "Q 21.140625 36.28125 19.15625 34.6875 \n",
       "Q 17.1875 33.109375 15.9375 30.515625 \n",
       "Q 14.703125 27.9375 14.703125 24.21875 \n",
       "Q 14.703125 20.40625 15.671875 17.109375 \n",
       "Q 16.65625 13.8125 18.484375 11.375 \n",
       "Q 20.3125 8.9375 22.890625 7.515625 \n",
       "Q 25.484375 6.109375 28.71875 6.109375 \n",
       "Q 31.890625 6.109375 34.40625 7.203125 \n",
       "Q 36.921875 8.296875 38.671875 10.375 \n",
       "Q 40.4375 12.453125 41.359375 15.421875 \n",
       "Q 42.28125 18.40625 42.28125 22.125 \n",
       "z\n",
       "\" id=\"LiberationSans-54\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-8722\"/>\n",
       "       <use x=\"58.398438\" xlink:href=\"#LiberationSans-54\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_5\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 110.50471 143.1 \n",
       "L 110.50471 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_6\"/>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- −4 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(104.803929 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 43.015625 15.578125 \n",
       "L 43.015625 0 \n",
       "L 34.71875 0 \n",
       "L 34.71875 15.578125 \n",
       "L 2.296875 15.578125 \n",
       "L 2.296875 22.40625 \n",
       "L 33.796875 68.796875 \n",
       "L 43.015625 68.796875 \n",
       "L 43.015625 22.515625 \n",
       "L 52.6875 22.515625 \n",
       "L 52.6875 15.578125 \n",
       "z\n",
       "M 34.71875 58.890625 \n",
       "Q 34.625 58.640625 34.234375 57.9375 \n",
       "Q 33.84375 57.234375 33.34375 56.34375 \n",
       "Q 32.859375 55.46875 32.34375 54.5625 \n",
       "Q 31.84375 53.65625 31.453125 53.078125 \n",
       "L 13.8125 27.09375 \n",
       "Q 13.578125 26.703125 13.109375 26.0625 \n",
       "Q 12.640625 25.4375 12.15625 24.78125 \n",
       "Q 11.671875 24.125 11.171875 23.484375 \n",
       "Q 10.6875 22.859375 10.40625 22.515625 \n",
       "L 34.71875 22.515625 \n",
       "z\n",
       "\" id=\"LiberationSans-52\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-8722\"/>\n",
       "       <use x=\"58.398438\" xlink:href=\"#LiberationSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_7\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 142.408656 143.1 \n",
       "L 142.408656 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_8\"/>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- −2 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(136.707875 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 5.03125 0 \n",
       "L 5.03125 6.203125 \n",
       "Q 7.515625 11.921875 11.109375 16.28125 \n",
       "Q 14.703125 20.65625 18.65625 24.1875 \n",
       "Q 22.609375 27.734375 26.484375 30.765625 \n",
       "Q 30.375 33.796875 33.5 36.8125 \n",
       "Q 36.625 39.84375 38.546875 43.15625 \n",
       "Q 40.484375 46.484375 40.484375 50.6875 \n",
       "Q 40.484375 53.609375 39.59375 55.828125 \n",
       "Q 38.71875 58.0625 37.0625 59.5625 \n",
       "Q 35.40625 61.078125 33.078125 61.828125 \n",
       "Q 30.765625 62.59375 27.9375 62.59375 \n",
       "Q 25.296875 62.59375 22.96875 61.859375 \n",
       "Q 20.65625 61.140625 18.84375 59.671875 \n",
       "Q 17.046875 58.203125 15.890625 56.03125 \n",
       "Q 14.75 53.859375 14.40625 50.984375 \n",
       "L 5.421875 51.8125 \n",
       "Q 5.859375 55.515625 7.46875 58.78125 \n",
       "Q 9.078125 62.0625 11.90625 64.53125 \n",
       "Q 14.75 67 18.71875 68.40625 \n",
       "Q 22.703125 69.828125 27.9375 69.828125 \n",
       "Q 33.0625 69.828125 37.0625 68.609375 \n",
       "Q 41.0625 67.390625 43.8125 64.984375 \n",
       "Q 46.578125 62.59375 48.046875 59.078125 \n",
       "Q 49.515625 55.5625 49.515625 50.984375 \n",
       "Q 49.515625 47.515625 48.265625 44.390625 \n",
       "Q 47.015625 41.265625 44.9375 38.421875 \n",
       "Q 42.875 35.59375 40.140625 32.953125 \n",
       "Q 37.40625 30.328125 34.421875 27.8125 \n",
       "Q 31.453125 25.296875 28.421875 22.828125 \n",
       "Q 25.390625 20.359375 22.71875 17.859375 \n",
       "Q 20.0625 15.375 17.96875 12.8125 \n",
       "Q 15.875 10.25 14.703125 7.46875 \n",
       "L 50.59375 7.46875 \n",
       "L 50.59375 0 \n",
       "z\n",
       "\" id=\"LiberationSans-50\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-8722\"/>\n",
       "       <use x=\"58.398438\" xlink:href=\"#LiberationSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_9\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 174.312602 143.1 \n",
       "L 174.312602 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_10\"/>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 0 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(171.532133 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 51.703125 34.421875 \n",
       "Q 51.703125 24.515625 49.828125 17.75 \n",
       "Q 47.953125 10.984375 44.703125 6.8125 \n",
       "Q 41.453125 2.640625 37.0625 0.828125 \n",
       "Q 32.671875 -0.984375 27.6875 -0.984375 \n",
       "Q 22.65625 -0.984375 18.3125 0.828125 \n",
       "Q 13.96875 2.640625 10.765625 6.78125 \n",
       "Q 7.5625 10.9375 5.734375 17.703125 \n",
       "Q 3.90625 24.46875 3.90625 34.421875 \n",
       "Q 3.90625 44.828125 5.734375 51.640625 \n",
       "Q 7.5625 58.453125 10.78125 62.5 \n",
       "Q 14.015625 66.546875 18.40625 68.1875 \n",
       "Q 22.796875 69.828125 27.984375 69.828125 \n",
       "Q 32.90625 69.828125 37.21875 68.1875 \n",
       "Q 41.546875 66.546875 44.765625 62.5 \n",
       "Q 48 58.453125 49.84375 51.640625 \n",
       "Q 51.703125 44.828125 51.703125 34.421875 \n",
       "z\n",
       "M 42.78125 34.421875 \n",
       "Q 42.78125 42.625 41.796875 48.0625 \n",
       "Q 40.828125 53.515625 38.921875 56.765625 \n",
       "Q 37.015625 60.015625 34.25 61.359375 \n",
       "Q 31.5 62.703125 27.984375 62.703125 \n",
       "Q 24.265625 62.703125 21.4375 61.328125 \n",
       "Q 18.609375 59.96875 16.671875 56.71875 \n",
       "Q 14.75 53.46875 13.765625 48.015625 \n",
       "Q 12.796875 42.578125 12.796875 34.421875 \n",
       "Q 12.796875 26.515625 13.796875 21.09375 \n",
       "Q 14.796875 15.671875 16.71875 12.375 \n",
       "Q 18.65625 9.078125 21.4375 7.640625 \n",
       "Q 24.21875 6.203125 27.78125 6.203125 \n",
       "Q 31.25 6.203125 34.03125 7.640625 \n",
       "Q 36.8125 9.078125 38.734375 12.375 \n",
       "Q 40.671875 15.671875 41.71875 21.09375 \n",
       "Q 42.78125 26.515625 42.78125 34.421875 \n",
       "z\n",
       "\" id=\"LiberationSans-48\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-48\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_6\">\n",
       "     <g id=\"line2d_11\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 206.216548 143.1 \n",
       "L 206.216548 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_12\"/>\n",
       "     <g id=\"text_6\">\n",
       "      <!-- 2 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(203.436079 157.346875)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_7\">\n",
       "     <g id=\"line2d_13\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 238.120493 143.1 \n",
       "L 238.120493 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_14\"/>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 4 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(235.340025 157.346875)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_8\">\n",
       "     <g id=\"line2d_15\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 270.024439 143.1 \n",
       "L 270.024439 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_16\"/>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 6 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(267.243971 157.346875)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-54\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_9\">\n",
       "     <g id=\"line2d_17\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 301.928385 143.1 \n",
       "L 301.928385 7.2 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_18\"/>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 8 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(299.147916 157.346875)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-56\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_10\">\n",
       "     <!-- x -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(170.765 171.393438)scale(0.11 -0.11)\">\n",
       "      <defs>\n",
       "       <path d=\"M 39.109375 0 \n",
       "L 24.90625 21.6875 \n",
       "L 10.59375 0 \n",
       "L 1.125 0 \n",
       "L 19.921875 27.15625 \n",
       "L 2 52.828125 \n",
       "L 11.71875 52.828125 \n",
       "L 24.90625 32.28125 \n",
       "L 37.984375 52.828125 \n",
       "L 47.796875 52.828125 \n",
       "L 29.890625 27.25 \n",
       "L 48.921875 0 \n",
       "z\n",
       "\" id=\"LiberationSans-120\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#LiberationSans-120\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_19\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 34.015 136.922727 \n",
       "L 313.015 136.922727 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_20\"/>\n",
       "     <g id=\"text_11\">\n",
       "      <!-- 0 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(21.454062 140.546165)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-48\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_21\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 34.015 105.645395 \n",
       "L 313.015 105.645395 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_22\"/>\n",
       "     <g id=\"text_12\">\n",
       "      <!-- 2 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(21.454062 109.268833)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_23\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 34.015 74.368064 \n",
       "L 313.015 74.368064 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_24\"/>\n",
       "     <g id=\"text_13\">\n",
       "      <!-- 4 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(21.454062 77.991501)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_4\">\n",
       "     <g id=\"line2d_25\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 34.015 43.090732 \n",
       "L 313.015 43.090732 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_26\"/>\n",
       "     <g id=\"text_14\">\n",
       "      <!-- 6 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(21.454062 46.714169)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-54\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_5\">\n",
       "     <g id=\"line2d_27\">\n",
       "      <path clip-path=\"url(#p55b947a587)\" d=\"M 34.015 11.8134 \n",
       "L 313.015 11.8134 \n",
       "\" style=\"fill:none;stroke:#ffffff;stroke-linecap:round;\"/>\n",
       "     </g>\n",
       "     <g id=\"line2d_28\"/>\n",
       "     <g id=\"text_15\">\n",
       "      <!-- 8 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(21.454062 15.436838)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-56\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_16\">\n",
       "     <!-- ReLU -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(15.171562 89.211094)rotate(-90)scale(0.11 -0.11)\">\n",
       "      <defs>\n",
       "       <path d=\"M 56.84375 0 \n",
       "L 38.96875 28.5625 \n",
       "L 17.53125 28.5625 \n",
       "L 17.53125 0 \n",
       "L 8.203125 0 \n",
       "L 8.203125 68.796875 \n",
       "L 40.578125 68.796875 \n",
       "Q 46.4375 68.796875 50.953125 67.453125 \n",
       "Q 55.46875 66.109375 58.546875 63.5625 \n",
       "Q 61.625 61.03125 63.234375 57.375 \n",
       "Q 64.84375 53.71875 64.84375 49.125 \n",
       "Q 64.84375 45.84375 63.890625 42.671875 \n",
       "Q 62.9375 39.5 60.890625 36.859375 \n",
       "Q 58.84375 34.234375 55.65625 32.328125 \n",
       "Q 52.484375 30.421875 48.046875 29.640625 \n",
       "L 67.578125 0 \n",
       "z\n",
       "M 55.46875 49.03125 \n",
       "Q 55.46875 52.15625 54.390625 54.4375 \n",
       "Q 53.328125 56.734375 51.265625 58.265625 \n",
       "Q 49.21875 59.8125 46.28125 60.5625 \n",
       "Q 43.359375 61.328125 39.65625 61.328125 \n",
       "L 17.53125 61.328125 \n",
       "L 17.53125 35.9375 \n",
       "L 40.046875 35.9375 \n",
       "Q 44.046875 35.9375 46.96875 36.9375 \n",
       "Q 49.90625 37.9375 51.78125 39.6875 \n",
       "Q 53.65625 41.453125 54.5625 43.84375 \n",
       "Q 55.46875 46.234375 55.46875 49.03125 \n",
       "z\n",
       "\" id=\"LiberationSans-82\"/>\n",
       "       <path d=\"M 13.484375 24.5625 \n",
       "Q 13.484375 20.40625 14.328125 16.90625 \n",
       "Q 15.1875 13.421875 16.96875 10.90625 \n",
       "Q 18.75 8.40625 21.53125 7 \n",
       "Q 24.3125 5.609375 28.21875 5.609375 \n",
       "Q 33.9375 5.609375 37.375 7.90625 \n",
       "Q 40.828125 10.203125 42.046875 13.71875 \n",
       "L 49.75 11.53125 \n",
       "Q 48.921875 9.328125 47.4375 7.109375 \n",
       "Q 45.953125 4.890625 43.453125 3.09375 \n",
       "Q 40.96875 1.3125 37.234375 0.15625 \n",
       "Q 33.5 -0.984375 28.21875 -0.984375 \n",
       "Q 16.5 -0.984375 10.375 6 \n",
       "Q 4.25 12.984375 4.25 26.765625 \n",
       "Q 4.25 34.1875 6.09375 39.328125 \n",
       "Q 7.953125 44.484375 11.171875 47.703125 \n",
       "Q 14.40625 50.921875 18.703125 52.359375 \n",
       "Q 23 53.8125 27.875 53.8125 \n",
       "Q 34.515625 53.8125 38.984375 51.65625 \n",
       "Q 43.453125 49.515625 46.15625 45.71875 \n",
       "Q 48.875 41.9375 50.015625 36.8125 \n",
       "Q 51.171875 31.6875 51.171875 25.734375 \n",
       "L 51.171875 24.5625 \n",
       "z\n",
       "M 42.09375 31.296875 \n",
       "Q 41.359375 39.65625 37.84375 43.484375 \n",
       "Q 34.328125 47.3125 27.734375 47.3125 \n",
       "Q 25.53125 47.3125 23.109375 46.609375 \n",
       "Q 20.703125 45.90625 18.65625 44.09375 \n",
       "Q 16.609375 42.28125 15.1875 39.171875 \n",
       "Q 13.765625 36.078125 13.578125 31.296875 \n",
       "z\n",
       "\" id=\"LiberationSans-101\"/>\n",
       "       <path d=\"M 8.203125 0 \n",
       "L 8.203125 68.796875 \n",
       "L 17.53125 68.796875 \n",
       "L 17.53125 7.625 \n",
       "L 52.296875 7.625 \n",
       "L 52.296875 0 \n",
       "z\n",
       "\" id=\"LiberationSans-76\"/>\n",
       "       <path d=\"M 35.6875 -0.984375 \n",
       "Q 30.03125 -0.984375 24.953125 0.53125 \n",
       "Q 19.875 2.046875 16.03125 5.25 \n",
       "Q 12.203125 8.453125 9.953125 13.359375 \n",
       "Q 7.71875 18.265625 7.71875 25 \n",
       "L 7.71875 68.796875 \n",
       "L 17.046875 68.796875 \n",
       "L 17.046875 25.78125 \n",
       "Q 17.046875 20.5625 18.4375 16.921875 \n",
       "Q 19.828125 13.28125 22.3125 10.984375 \n",
       "Q 24.8125 8.6875 28.203125 7.640625 \n",
       "Q 31.59375 6.59375 35.640625 6.59375 \n",
       "Q 39.65625 6.59375 43.21875 7.65625 \n",
       "Q 46.78125 8.734375 49.46875 11.078125 \n",
       "Q 52.15625 13.421875 53.6875 17.203125 \n",
       "Q 55.21875 21 55.21875 26.421875 \n",
       "L 55.21875 68.796875 \n",
       "L 64.5 68.796875 \n",
       "L 64.5 25.875 \n",
       "Q 64.5 19 62.234375 13.9375 \n",
       "Q 59.96875 8.890625 56.0625 5.5625 \n",
       "Q 52.15625 2.25 46.90625 0.625 \n",
       "Q 41.65625 -0.984375 35.6875 -0.984375 \n",
       "z\n",
       "\" id=\"LiberationSans-85\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#LiberationSans-82\"/>\n",
       "      <use x=\"72.216797\" xlink:href=\"#LiberationSans-101\"/>\n",
       "      <use x=\"127.832031\" xlink:href=\"#LiberationSans-76\"/>\n",
       "      <use x=\"183.447266\" xlink:href=\"#LiberationSans-85\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_29\">\n",
       "    <path clip-path=\"url(#p55b947a587)\" d=\"M 46.696818 136.922727 \n",
       "L 174.312602 136.922727 \n",
       "L 300.333182 13.377273 \n",
       "L 300.333182 13.377273 \n",
       "\" style=\"fill:none;stroke:#4c72b0;stroke-linecap:round;stroke-width:1.75;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 34.015 143.1 \n",
       "L 34.015 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 313.015 143.1 \n",
       "L 313.015 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 34.015 143.1 \n",
       "L 313.015 143.1 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 34.015 7.2 \n",
       "L 313.015 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p55b947a587\">\n",
       "   <rect height=\"135.9\" width=\"279\" x=\"34.015\" y=\"7.2\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 360x180 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "x = torch.arange(-8.0, 8.0, 0.1, requires_grad=False)\n",
    "y = torch.relu(x)\n",
    "fig,ax = plt.subplots(figsize=(5, 2.5))\n",
    "_ = ax.plot(x,y)\n",
    "_ = ax.set(xlabel='x', ylabel='ReLU')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 实现模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "def net(X):\n",
    "    X = X.reshape((-1, num_inputs)) # 将输入的每个二维图像转换成长度为`num_inputs`的向量\n",
    "    H = relu(X@W1 + b1)\n",
    "    return (H@W2 + b2)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- $@$相当于`torch.matmul`（或者`torch.mm`)\n",
    "- $*$相当于`torch.mul`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 【注意】输出层不用再加relu"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "## 初始化模型参数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-07-31T02:41:45.021732Z",
     "iopub.status.busy": "2022-07-31T02:41:45.021304Z",
     "iopub.status.idle": "2022-07-31T02:41:45.029421Z",
     "shell.execute_reply": "2022-07-31T02:41:45.028761Z"
    },
    "origin_pos": 7,
    "slideshow": {
     "slide_type": "fragment"
    },
    "tab": [
     "pytorch"
    ]
   },
   "outputs": [],
   "source": [
    "num_inputs, num_outputs, num_hiddens = 784, 10, 256\n",
    "\n",
    "W1 = nn.Parameter(torch.randn(\n",
    "    num_inputs, num_hiddens, requires_grad=True) * 0.01)  # 均值为0，标准差为0.01的正态分布\n",
    "b1 = nn.Parameter(torch.zeros(num_hiddens, requires_grad=True))\n",
    "W2 = nn.Parameter(torch.randn(\n",
    "    num_hiddens, num_outputs, requires_grad=True) * 0.01)\n",
    "b2 = nn.Parameter(torch.zeros(num_outputs, requires_grad=True))\n",
    "\n",
    "params = [W1, b1, W2, b2]"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "subslide"
    }
   },
   "source": [
    "- ```python\n",
    "torch.randn(*size)\n",
    "```\n",
    "\n",
    "    - 从标准正态分布采样（均值为0，方差为1）.\n"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- ```python\n",
    "torch.nn.Parameter(data=None, requires_grad=True)\n",
    "```\n",
    "\n",
    "    - 将`Tensor`显示地设置为模型的参数\n",
    "    - `data`：输入的`Tensor`"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# loss、优化器和正式训练"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "- 多层感知机的训练过程与softmax回归的训练过程完全相同"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [],
   "source": [
    "loss = nn.CrossEntropyLoss(reduction='none') # 用交叉熵作为损失函数"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-07-31T02:41:45.051220Z",
     "iopub.status.busy": "2022-07-31T02:41:45.050949Z",
     "iopub.status.idle": "2022-07-31T02:42:19.708624Z",
     "shell.execute_reply": "2022-07-31T02:42:19.707887Z"
    },
    "origin_pos": 23,
    "slideshow": {
     "slide_type": "fragment"
    },
    "tab": [
     "pytorch"
    ]
   },
   "outputs": [],
   "source": [
    "num_epochs, lr = 10, 0.1\n",
    "updater = torch.optim.SGD(params, lr=lr)    # 随机梯度下降优化器"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 常用的优化器和损失函数"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "source": [
    "|损失函数/优化器|问题类型|`PyTorch`代码|\n",
    "|---|---|---|\n",
    "|SGD优化器|分类、回归|`torch.optim.SGD()`|\n",
    "|Adam优化器|分类、回归|`torch.optim.Adam()`|\n",
    "|二元交叉熵损失|二分类|`torch.nn.BCELoss`或`torch.nn.BCELossWithLogits`|\n",
    "|交叉熵损失|多分类|`torch.nn.CrossEntropyLoss`|\n",
    "|平均绝对误差(Mean Absolute Error)或L1损失|回归|`torch.nn.L1Loss`|\n",
    "|均方误差（Mean Squared Error）或L2损失|回归|`torch.nn.MSELoss`|"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "slideshow": {
     "slide_type": "fragment"
    }
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"180.875938pt\" version=\"1.1\" viewBox=\"0 0 236.160938 180.875938\" width=\"236.160938pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-11-19T20:55:40.365990</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 180.875938 \n",
       "L 236.160938 180.875938 \n",
       "L 236.160938 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 28.1 143.1 \n",
       "L 223.4 143.1 \n",
       "L 223.4 7.2 \n",
       "L 28.1 7.2 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_1\">\n",
       "    <g id=\"xtick_1\">\n",
       "     <g id=\"line2d_1\"/>\n",
       "     <g id=\"text_1\">\n",
       "      <!-- 2 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(47.019531 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 5.03125 0 \n",
       "L 5.03125 6.203125 \n",
       "Q 7.515625 11.921875 11.109375 16.28125 \n",
       "Q 14.703125 20.65625 18.65625 24.1875 \n",
       "Q 22.609375 27.734375 26.484375 30.765625 \n",
       "Q 30.375 33.796875 33.5 36.8125 \n",
       "Q 36.625 39.84375 38.546875 43.15625 \n",
       "Q 40.484375 46.484375 40.484375 50.6875 \n",
       "Q 40.484375 53.609375 39.59375 55.828125 \n",
       "Q 38.71875 58.0625 37.0625 59.5625 \n",
       "Q 35.40625 61.078125 33.078125 61.828125 \n",
       "Q 30.765625 62.59375 27.9375 62.59375 \n",
       "Q 25.296875 62.59375 22.96875 61.859375 \n",
       "Q 20.65625 61.140625 18.84375 59.671875 \n",
       "Q 17.046875 58.203125 15.890625 56.03125 \n",
       "Q 14.75 53.859375 14.40625 50.984375 \n",
       "L 5.421875 51.8125 \n",
       "Q 5.859375 55.515625 7.46875 58.78125 \n",
       "Q 9.078125 62.0625 11.90625 64.53125 \n",
       "Q 14.75 67 18.71875 68.40625 \n",
       "Q 22.703125 69.828125 27.9375 69.828125 \n",
       "Q 33.0625 69.828125 37.0625 68.609375 \n",
       "Q 41.0625 67.390625 43.8125 64.984375 \n",
       "Q 46.578125 62.59375 48.046875 59.078125 \n",
       "Q 49.515625 55.5625 49.515625 50.984375 \n",
       "Q 49.515625 47.515625 48.265625 44.390625 \n",
       "Q 47.015625 41.265625 44.9375 38.421875 \n",
       "Q 42.875 35.59375 40.140625 32.953125 \n",
       "Q 37.40625 30.328125 34.421875 27.8125 \n",
       "Q 31.453125 25.296875 28.421875 22.828125 \n",
       "Q 25.390625 20.359375 22.71875 17.859375 \n",
       "Q 20.0625 15.375 17.96875 12.8125 \n",
       "Q 15.875 10.25 14.703125 7.46875 \n",
       "L 50.59375 7.46875 \n",
       "L 50.59375 0 \n",
       "z\n",
       "\" id=\"LiberationSans-50\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-50\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_2\">\n",
       "     <g id=\"line2d_2\"/>\n",
       "     <g id=\"text_2\">\n",
       "      <!-- 4 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(90.419531 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 43.015625 15.578125 \n",
       "L 43.015625 0 \n",
       "L 34.71875 0 \n",
       "L 34.71875 15.578125 \n",
       "L 2.296875 15.578125 \n",
       "L 2.296875 22.40625 \n",
       "L 33.796875 68.796875 \n",
       "L 43.015625 68.796875 \n",
       "L 43.015625 22.515625 \n",
       "L 52.6875 22.515625 \n",
       "L 52.6875 15.578125 \n",
       "z\n",
       "M 34.71875 58.890625 \n",
       "Q 34.625 58.640625 34.234375 57.9375 \n",
       "Q 33.84375 57.234375 33.34375 56.34375 \n",
       "Q 32.859375 55.46875 32.34375 54.5625 \n",
       "Q 31.84375 53.65625 31.453125 53.078125 \n",
       "L 13.8125 27.09375 \n",
       "Q 13.578125 26.703125 13.109375 26.0625 \n",
       "Q 12.640625 25.4375 12.15625 24.78125 \n",
       "Q 11.671875 24.125 11.171875 23.484375 \n",
       "Q 10.6875 22.859375 10.40625 22.515625 \n",
       "L 34.71875 22.515625 \n",
       "z\n",
       "\" id=\"LiberationSans-52\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_3\">\n",
       "     <g id=\"line2d_3\"/>\n",
       "     <g id=\"text_3\">\n",
       "      <!-- 6 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(133.819531 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 51.21875 22.515625 \n",
       "Q 51.21875 17.328125 49.78125 13 \n",
       "Q 48.34375 8.6875 45.53125 5.578125 \n",
       "Q 42.71875 2.484375 38.5625 0.75 \n",
       "Q 34.421875 -0.984375 29 -0.984375 \n",
       "Q 23 -0.984375 18.5 1.3125 \n",
       "Q 14.015625 3.609375 11.03125 7.921875 \n",
       "Q 8.0625 12.25 6.5625 18.53125 \n",
       "Q 5.078125 24.8125 5.078125 32.8125 \n",
       "Q 5.078125 42 6.765625 48.921875 \n",
       "Q 8.453125 55.859375 11.625 60.5 \n",
       "Q 14.796875 65.140625 19.359375 67.484375 \n",
       "Q 23.921875 69.828125 29.6875 69.828125 \n",
       "Q 33.203125 69.828125 36.28125 69.09375 \n",
       "Q 39.359375 68.359375 41.875 66.71875 \n",
       "Q 44.390625 65.09375 46.28125 62.40625 \n",
       "Q 48.1875 59.71875 49.3125 55.8125 \n",
       "L 40.921875 54.296875 \n",
       "Q 39.546875 58.734375 36.546875 60.71875 \n",
       "Q 33.546875 62.703125 29.59375 62.703125 \n",
       "Q 25.984375 62.703125 23.046875 60.984375 \n",
       "Q 20.125 59.28125 18.0625 55.875 \n",
       "Q 16.015625 52.484375 14.90625 47.359375 \n",
       "Q 13.8125 42.234375 13.8125 35.40625 \n",
       "Q 16.21875 39.84375 20.5625 42.15625 \n",
       "Q 24.90625 44.484375 30.515625 44.484375 \n",
       "Q 35.203125 44.484375 39.015625 42.96875 \n",
       "Q 42.828125 41.453125 45.53125 38.59375 \n",
       "Q 48.25 35.75 49.734375 31.671875 \n",
       "Q 51.21875 27.59375 51.21875 22.515625 \n",
       "z\n",
       "M 42.28125 22.125 \n",
       "Q 42.28125 25.6875 41.40625 28.5625 \n",
       "Q 40.53125 31.453125 38.765625 33.46875 \n",
       "Q 37.015625 35.5 34.421875 36.59375 \n",
       "Q 31.84375 37.703125 28.421875 37.703125 \n",
       "Q 26.03125 37.703125 23.578125 36.984375 \n",
       "Q 21.140625 36.28125 19.15625 34.6875 \n",
       "Q 17.1875 33.109375 15.9375 30.515625 \n",
       "Q 14.703125 27.9375 14.703125 24.21875 \n",
       "Q 14.703125 20.40625 15.671875 17.109375 \n",
       "Q 16.65625 13.8125 18.484375 11.375 \n",
       "Q 20.3125 8.9375 22.890625 7.515625 \n",
       "Q 25.484375 6.109375 28.71875 6.109375 \n",
       "Q 31.890625 6.109375 34.40625 7.203125 \n",
       "Q 36.921875 8.296875 38.671875 10.375 \n",
       "Q 40.4375 12.453125 41.359375 15.421875 \n",
       "Q 42.28125 18.40625 42.28125 22.125 \n",
       "z\n",
       "\" id=\"LiberationSans-54\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-54\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_4\">\n",
       "     <g id=\"line2d_4\"/>\n",
       "     <g id=\"text_4\">\n",
       "      <!-- 8 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(177.219531 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 51.265625 19.1875 \n",
       "Q 51.265625 14.796875 49.875 11.109375 \n",
       "Q 48.484375 7.421875 45.625 4.734375 \n",
       "Q 42.78125 2.046875 38.328125 0.53125 \n",
       "Q 33.890625 -0.984375 27.828125 -0.984375 \n",
       "Q 21.78125 -0.984375 17.359375 0.53125 \n",
       "Q 12.9375 2.046875 10.03125 4.703125 \n",
       "Q 7.125 7.375 5.734375 11.0625 \n",
       "Q 4.34375 14.75 4.34375 19.09375 \n",
       "Q 4.34375 22.859375 5.484375 25.78125 \n",
       "Q 6.640625 28.71875 8.5625 30.828125 \n",
       "Q 10.5 32.953125 12.96875 34.25 \n",
       "Q 15.4375 35.546875 18.0625 35.984375 \n",
       "L 18.0625 36.1875 \n",
       "Q 15.1875 36.859375 12.90625 38.375 \n",
       "Q 10.640625 39.890625 9.09375 42.015625 \n",
       "Q 7.5625 44.140625 6.75 46.71875 \n",
       "Q 5.953125 49.3125 5.953125 52.203125 \n",
       "Q 5.953125 55.8125 7.34375 59 \n",
       "Q 8.734375 62.203125 11.46875 64.625 \n",
       "Q 14.203125 67.046875 18.25 68.4375 \n",
       "Q 22.3125 69.828125 27.640625 69.828125 \n",
       "Q 33.25 69.828125 37.375 68.40625 \n",
       "Q 41.5 67 44.203125 64.578125 \n",
       "Q 46.921875 62.15625 48.234375 58.9375 \n",
       "Q 49.5625 55.71875 49.5625 52.09375 \n",
       "Q 49.5625 49.265625 48.75 46.671875 \n",
       "Q 47.953125 44.09375 46.40625 41.96875 \n",
       "Q 44.875 39.84375 42.59375 38.34375 \n",
       "Q 40.328125 36.859375 37.359375 36.28125 \n",
       "L 37.359375 36.078125 \n",
       "Q 40.328125 35.59375 42.859375 34.296875 \n",
       "Q 45.40625 33.015625 47.265625 30.890625 \n",
       "Q 49.125 28.765625 50.1875 25.828125 \n",
       "Q 51.265625 22.90625 51.265625 19.1875 \n",
       "z\n",
       "M 40.4375 51.609375 \n",
       "Q 40.4375 54.203125 39.765625 56.34375 \n",
       "Q 39.109375 58.5 37.59375 60.03125 \n",
       "Q 36.078125 61.578125 33.640625 62.421875 \n",
       "Q 31.203125 63.28125 27.640625 63.28125 \n",
       "Q 24.171875 63.28125 21.78125 62.421875 \n",
       "Q 19.390625 61.578125 17.84375 60.03125 \n",
       "Q 16.3125 58.5 15.625 56.34375 \n",
       "Q 14.9375 54.203125 14.9375 51.609375 \n",
       "Q 14.9375 49.5625 15.46875 47.40625 \n",
       "Q 16.015625 45.265625 17.421875 43.5 \n",
       "Q 18.84375 41.75 21.328125 40.625 \n",
       "Q 23.828125 39.5 27.734375 39.5 \n",
       "Q 31.890625 39.5 34.40625 40.625 \n",
       "Q 36.921875 41.75 38.25 43.5 \n",
       "Q 39.59375 45.265625 40.015625 47.40625 \n",
       "Q 40.4375 49.5625 40.4375 51.609375 \n",
       "z\n",
       "M 42.140625 20.015625 \n",
       "Q 42.140625 22.515625 41.453125 24.828125 \n",
       "Q 40.765625 27.15625 39.109375 28.9375 \n",
       "Q 37.453125 30.71875 34.640625 31.8125 \n",
       "Q 31.84375 32.90625 27.640625 32.90625 \n",
       "Q 23.78125 32.90625 21.0625 31.8125 \n",
       "Q 18.359375 30.71875 16.671875 28.90625 \n",
       "Q 14.984375 27.09375 14.203125 24.71875 \n",
       "Q 13.421875 22.359375 13.421875 19.828125 \n",
       "Q 13.421875 16.65625 14.203125 14.03125 \n",
       "Q 14.984375 11.421875 16.6875 9.546875 \n",
       "Q 18.40625 7.671875 21.1875 6.640625 \n",
       "Q 23.96875 5.609375 27.9375 5.609375 \n",
       "Q 31.9375 5.609375 34.671875 6.640625 \n",
       "Q 37.40625 7.671875 39.0625 9.546875 \n",
       "Q 40.71875 11.421875 41.421875 14.078125 \n",
       "Q 42.140625 16.75 42.140625 20.015625 \n",
       "z\n",
       "\" id=\"LiberationSans-56\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-56\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"xtick_5\">\n",
       "     <g id=\"line2d_5\"/>\n",
       "     <g id=\"text_5\">\n",
       "      <!-- 10 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(217.839063 157.346875)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 7.625 0 \n",
       "L 7.625 7.46875 \n",
       "L 25.140625 7.46875 \n",
       "L 25.140625 60.40625 \n",
       "L 9.625 49.3125 \n",
       "L 9.625 57.625 \n",
       "L 25.875 68.796875 \n",
       "L 33.984375 68.796875 \n",
       "L 33.984375 7.46875 \n",
       "L 50.734375 7.46875 \n",
       "L 50.734375 0 \n",
       "z\n",
       "\" id=\"LiberationSans-49\"/>\n",
       "        <path d=\"M 51.703125 34.421875 \n",
       "Q 51.703125 24.515625 49.828125 17.75 \n",
       "Q 47.953125 10.984375 44.703125 6.8125 \n",
       "Q 41.453125 2.640625 37.0625 0.828125 \n",
       "Q 32.671875 -0.984375 27.6875 -0.984375 \n",
       "Q 22.65625 -0.984375 18.3125 0.828125 \n",
       "Q 13.96875 2.640625 10.765625 6.78125 \n",
       "Q 7.5625 10.9375 5.734375 17.703125 \n",
       "Q 3.90625 24.46875 3.90625 34.421875 \n",
       "Q 3.90625 44.828125 5.734375 51.640625 \n",
       "Q 7.5625 58.453125 10.78125 62.5 \n",
       "Q 14.015625 66.546875 18.40625 68.1875 \n",
       "Q 22.796875 69.828125 27.984375 69.828125 \n",
       "Q 32.90625 69.828125 37.21875 68.1875 \n",
       "Q 41.546875 66.546875 44.765625 62.5 \n",
       "Q 48 58.453125 49.84375 51.640625 \n",
       "Q 51.703125 44.828125 51.703125 34.421875 \n",
       "z\n",
       "M 42.78125 34.421875 \n",
       "Q 42.78125 42.625 41.796875 48.0625 \n",
       "Q 40.828125 53.515625 38.921875 56.765625 \n",
       "Q 37.015625 60.015625 34.25 61.359375 \n",
       "Q 31.5 62.703125 27.984375 62.703125 \n",
       "Q 24.265625 62.703125 21.4375 61.328125 \n",
       "Q 18.609375 59.96875 16.671875 56.71875 \n",
       "Q 14.75 53.46875 13.765625 48.015625 \n",
       "Q 12.796875 42.578125 12.796875 34.421875 \n",
       "Q 12.796875 26.515625 13.796875 21.09375 \n",
       "Q 14.796875 15.671875 16.71875 12.375 \n",
       "Q 18.65625 9.078125 21.4375 7.640625 \n",
       "Q 24.21875 6.203125 27.78125 6.203125 \n",
       "Q 31.25 6.203125 34.03125 7.640625 \n",
       "Q 36.8125 9.078125 38.734375 12.375 \n",
       "Q 40.671875 15.671875 41.71875 21.09375 \n",
       "Q 42.78125 26.515625 42.78125 34.421875 \n",
       "z\n",
       "\" id=\"LiberationSans-48\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-49\"/>\n",
       "       <use x=\"55.615234\" xlink:href=\"#LiberationSans-48\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"text_6\">\n",
       "     <!-- epoch -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(110.765938 171.393438)scale(0.11 -0.11)\">\n",
       "      <defs>\n",
       "       <path d=\"M 13.484375 24.5625 \n",
       "Q 13.484375 20.40625 14.328125 16.90625 \n",
       "Q 15.1875 13.421875 16.96875 10.90625 \n",
       "Q 18.75 8.40625 21.53125 7 \n",
       "Q 24.3125 5.609375 28.21875 5.609375 \n",
       "Q 33.9375 5.609375 37.375 7.90625 \n",
       "Q 40.828125 10.203125 42.046875 13.71875 \n",
       "L 49.75 11.53125 \n",
       "Q 48.921875 9.328125 47.4375 7.109375 \n",
       "Q 45.953125 4.890625 43.453125 3.09375 \n",
       "Q 40.96875 1.3125 37.234375 0.15625 \n",
       "Q 33.5 -0.984375 28.21875 -0.984375 \n",
       "Q 16.5 -0.984375 10.375 6 \n",
       "Q 4.25 12.984375 4.25 26.765625 \n",
       "Q 4.25 34.1875 6.09375 39.328125 \n",
       "Q 7.953125 44.484375 11.171875 47.703125 \n",
       "Q 14.40625 50.921875 18.703125 52.359375 \n",
       "Q 23 53.8125 27.875 53.8125 \n",
       "Q 34.515625 53.8125 38.984375 51.65625 \n",
       "Q 43.453125 49.515625 46.15625 45.71875 \n",
       "Q 48.875 41.9375 50.015625 36.8125 \n",
       "Q 51.171875 31.6875 51.171875 25.734375 \n",
       "L 51.171875 24.5625 \n",
       "z\n",
       "M 42.09375 31.296875 \n",
       "Q 41.359375 39.65625 37.84375 43.484375 \n",
       "Q 34.328125 47.3125 27.734375 47.3125 \n",
       "Q 25.53125 47.3125 23.109375 46.609375 \n",
       "Q 20.703125 45.90625 18.65625 44.09375 \n",
       "Q 16.609375 42.28125 15.1875 39.171875 \n",
       "Q 13.765625 36.078125 13.578125 31.296875 \n",
       "z\n",
       "\" id=\"LiberationSans-101\"/>\n",
       "       <path d=\"M 51.421875 26.65625 \n",
       "Q 51.421875 20.65625 50.4375 15.578125 \n",
       "Q 49.46875 10.5 47.1875 6.828125 \n",
       "Q 44.921875 3.171875 41.1875 1.09375 \n",
       "Q 37.453125 -0.984375 31.984375 -0.984375 \n",
       "Q 26.3125 -0.984375 22.0625 1.171875 \n",
       "Q 17.828125 3.328125 15.578125 8.203125 \n",
       "L 15.328125 8.203125 \n",
       "Q 15.375 8.109375 15.40625 7.328125 \n",
       "Q 15.4375 6.546875 15.453125 5.375 \n",
       "Q 15.484375 4.203125 15.5 2.75 \n",
       "Q 15.53125 1.3125 15.53125 -0.09375 \n",
       "L 15.53125 -20.75 \n",
       "L 6.734375 -20.75 \n",
       "L 6.734375 42.046875 \n",
       "Q 6.734375 43.953125 6.703125 45.703125 \n",
       "Q 6.6875 47.46875 6.640625 48.90625 \n",
       "Q 6.59375 50.34375 6.546875 51.359375 \n",
       "Q 6.5 52.390625 6.453125 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 52.6875 15.0625 51.796875 \n",
       "Q 15.140625 50.921875 15.203125 49.671875 \n",
       "Q 15.28125 48.4375 15.359375 47.015625 \n",
       "Q 15.4375 45.609375 15.4375 44.34375 \n",
       "L 15.625 44.34375 \n",
       "Q 16.84375 46.875 18.40625 48.65625 \n",
       "Q 19.96875 50.4375 21.96875 51.578125 \n",
       "Q 23.96875 52.734375 26.4375 53.25 \n",
       "Q 28.90625 53.765625 31.984375 53.765625 \n",
       "Q 37.453125 53.765625 41.1875 51.8125 \n",
       "Q 44.921875 49.859375 47.1875 46.3125 \n",
       "Q 49.46875 42.78125 50.4375 37.765625 \n",
       "Q 51.421875 32.765625 51.421875 26.65625 \n",
       "z\n",
       "M 42.1875 26.46875 \n",
       "Q 42.1875 31.34375 41.59375 35.15625 \n",
       "Q 41.015625 38.96875 39.578125 41.59375 \n",
       "Q 38.140625 44.234375 35.734375 45.59375 \n",
       "Q 33.34375 46.96875 29.734375 46.96875 \n",
       "Q 26.8125 46.96875 24.21875 46.140625 \n",
       "Q 21.625 45.3125 19.703125 42.96875 \n",
       "Q 17.78125 40.625 16.65625 36.5 \n",
       "Q 15.53125 32.375 15.53125 25.78125 \n",
       "Q 15.53125 20.171875 16.453125 16.28125 \n",
       "Q 17.390625 12.40625 19.171875 10.015625 \n",
       "Q 20.953125 7.625 23.578125 6.5625 \n",
       "Q 26.21875 5.515625 29.640625 5.515625 \n",
       "Q 33.296875 5.515625 35.71875 6.921875 \n",
       "Q 38.140625 8.34375 39.578125 11.03125 \n",
       "Q 41.015625 13.71875 41.59375 17.59375 \n",
       "Q 42.1875 21.484375 42.1875 26.46875 \n",
       "z\n",
       "\" id=\"LiberationSans-112\"/>\n",
       "       <path d=\"M 51.421875 26.46875 \n",
       "Q 51.421875 12.59375 45.3125 5.796875 \n",
       "Q 39.203125 -0.984375 27.59375 -0.984375 \n",
       "Q 22.078125 -0.984375 17.71875 0.671875 \n",
       "Q 13.375 2.34375 10.375 5.765625 \n",
       "Q 7.375 9.1875 5.78125 14.328125 \n",
       "Q 4.203125 19.484375 4.203125 26.46875 \n",
       "Q 4.203125 53.8125 27.875 53.8125 \n",
       "Q 34.03125 53.8125 38.5 52.09375 \n",
       "Q 42.96875 50.390625 45.828125 46.96875 \n",
       "Q 48.6875 43.5625 50.046875 38.421875 \n",
       "Q 51.421875 33.296875 51.421875 26.46875 \n",
       "z\n",
       "M 42.1875 26.46875 \n",
       "Q 42.1875 32.625 41.234375 36.625 \n",
       "Q 40.28125 40.625 38.453125 43.015625 \n",
       "Q 36.625 45.40625 33.984375 46.359375 \n",
       "Q 31.34375 47.3125 28.03125 47.3125 \n",
       "Q 24.65625 47.3125 21.9375 46.3125 \n",
       "Q 19.234375 45.3125 17.328125 42.890625 \n",
       "Q 15.4375 40.484375 14.421875 36.46875 \n",
       "Q 13.421875 32.46875 13.421875 26.46875 \n",
       "Q 13.421875 20.3125 14.5 16.28125 \n",
       "Q 15.578125 12.25 17.453125 9.859375 \n",
       "Q 19.34375 7.46875 21.90625 6.484375 \n",
       "Q 24.46875 5.515625 27.484375 5.515625 \n",
       "Q 30.859375 5.515625 33.59375 6.46875 \n",
       "Q 36.328125 7.421875 38.234375 9.8125 \n",
       "Q 40.140625 12.203125 41.15625 16.25 \n",
       "Q 42.1875 20.3125 42.1875 26.46875 \n",
       "z\n",
       "\" id=\"LiberationSans-111\"/>\n",
       "       <path d=\"M 13.421875 26.65625 \n",
       "Q 13.421875 22.125 14.078125 18.3125 \n",
       "Q 14.75 14.5 16.3125 11.734375 \n",
       "Q 17.875 8.984375 20.4375 7.46875 \n",
       "Q 23 5.953125 26.765625 5.953125 \n",
       "Q 31.453125 5.953125 34.59375 8.484375 \n",
       "Q 37.75 11.03125 38.484375 16.3125 \n",
       "L 47.359375 15.71875 \n",
       "Q 46.921875 12.453125 45.453125 9.421875 \n",
       "Q 44 6.390625 41.484375 4.09375 \n",
       "Q 38.96875 1.8125 35.34375 0.40625 \n",
       "Q 31.734375 -0.984375 27 -0.984375 \n",
       "Q 20.796875 -0.984375 16.453125 1.109375 \n",
       "Q 12.109375 3.21875 9.390625 6.90625 \n",
       "Q 6.6875 10.59375 5.46875 15.59375 \n",
       "Q 4.25 20.609375 4.25 26.46875 \n",
       "Q 4.25 31.78125 5.125 35.859375 \n",
       "Q 6 39.9375 7.59375 42.984375 \n",
       "Q 9.1875 46.046875 11.328125 48.125 \n",
       "Q 13.484375 50.203125 15.984375 51.4375 \n",
       "Q 18.5 52.6875 21.28125 53.25 \n",
       "Q 24.078125 53.8125 26.90625 53.8125 \n",
       "Q 31.34375 53.8125 34.8125 52.59375 \n",
       "Q 38.28125 51.375 40.796875 49.25 \n",
       "Q 43.3125 47.125 44.875 44.234375 \n",
       "Q 46.4375 41.359375 47.078125 38.03125 \n",
       "L 38.03125 37.359375 \n",
       "Q 37.359375 41.75 34.5625 44.328125 \n",
       "Q 31.78125 46.921875 26.65625 46.921875 \n",
       "Q 22.90625 46.921875 20.390625 45.671875 \n",
       "Q 17.875 44.4375 16.3125 41.921875 \n",
       "Q 14.75 39.40625 14.078125 35.59375 \n",
       "Q 13.421875 31.78125 13.421875 26.65625 \n",
       "z\n",
       "\" id=\"LiberationSans-99\"/>\n",
       "       <path d=\"M 15.484375 43.796875 \n",
       "Q 16.9375 46.484375 18.640625 48.359375 \n",
       "Q 20.359375 50.25 22.40625 51.46875 \n",
       "Q 24.46875 52.6875 26.90625 53.25 \n",
       "Q 29.34375 53.8125 32.375 53.8125 \n",
       "Q 37.453125 53.8125 40.703125 52.4375 \n",
       "Q 43.953125 51.078125 45.828125 48.609375 \n",
       "Q 47.703125 46.140625 48.40625 42.71875 \n",
       "Q 49.125 39.3125 49.125 35.203125 \n",
       "L 49.125 0 \n",
       "L 40.28125 0 \n",
       "L 40.28125 33.5 \n",
       "Q 40.28125 36.859375 39.859375 39.390625 \n",
       "Q 39.453125 41.9375 38.28125 43.625 \n",
       "Q 37.109375 45.3125 34.953125 46.15625 \n",
       "Q 32.8125 47.015625 29.390625 47.015625 \n",
       "Q 26.265625 47.015625 23.75 45.890625 \n",
       "Q 21.234375 44.78125 19.453125 42.71875 \n",
       "Q 17.671875 40.671875 16.6875 37.734375 \n",
       "Q 15.71875 34.8125 15.71875 31.15625 \n",
       "L 15.71875 0 \n",
       "L 6.9375 0 \n",
       "L 6.9375 72.46875 \n",
       "L 15.71875 72.46875 \n",
       "L 15.71875 53.609375 \n",
       "Q 15.71875 52 15.671875 50.390625 \n",
       "Q 15.625 48.78125 15.546875 47.40625 \n",
       "Q 15.484375 46.046875 15.421875 45.09375 \n",
       "Q 15.375 44.140625 15.328125 43.796875 \n",
       "z\n",
       "\" id=\"LiberationSans-104\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#LiberationSans-101\"/>\n",
       "      <use x=\"55.615234\" xlink:href=\"#LiberationSans-112\"/>\n",
       "      <use x=\"111.230469\" xlink:href=\"#LiberationSans-111\"/>\n",
       "      <use x=\"166.845703\" xlink:href=\"#LiberationSans-99\"/>\n",
       "      <use x=\"216.845703\" xlink:href=\"#LiberationSans-104\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"matplotlib.axis_2\">\n",
       "    <g id=\"ytick_1\">\n",
       "     <g id=\"line2d_6\"/>\n",
       "     <g id=\"text_7\">\n",
       "      <!-- 0.4 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(7.2 124.073438)scale(0.1 -0.1)\">\n",
       "       <defs>\n",
       "        <path d=\"M 9.125 0 \n",
       "L 9.125 10.6875 \n",
       "L 18.65625 10.6875 \n",
       "L 18.65625 0 \n",
       "z\n",
       "\" id=\"LiberationSans-46\"/>\n",
       "       </defs>\n",
       "       <use xlink:href=\"#LiberationSans-48\"/>\n",
       "       <use x=\"55.615234\" xlink:href=\"#LiberationSans-46\"/>\n",
       "       <use x=\"83.398438\" xlink:href=\"#LiberationSans-52\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_2\">\n",
       "     <g id=\"line2d_7\"/>\n",
       "     <g id=\"text_8\">\n",
       "      <!-- 0.6 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(7.2 78.773437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-48\"/>\n",
       "       <use x=\"55.615234\" xlink:href=\"#LiberationSans-46\"/>\n",
       "       <use x=\"83.398438\" xlink:href=\"#LiberationSans-54\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"ytick_3\">\n",
       "     <g id=\"line2d_8\"/>\n",
       "     <g id=\"text_9\">\n",
       "      <!-- 0.8 -->\n",
       "      <g style=\"fill:#262626;\" transform=\"translate(7.2 33.473437)scale(0.1 -0.1)\">\n",
       "       <use xlink:href=\"#LiberationSans-48\"/>\n",
       "       <use x=\"55.615234\" xlink:href=\"#LiberationSans-46\"/>\n",
       "       <use x=\"83.398438\" xlink:href=\"#LiberationSans-56\"/>\n",
       "      </g>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "   <g id=\"line2d_9\">\n",
       "    <path clip-path=\"url(#p060c997036)\" d=\"M 33.363301 -1 \n",
       "L 49.8 75.838549 \n",
       "L 71.5 92.968567 \n",
       "L 93.2 102.302967 \n",
       "L 114.9 108.568951 \n",
       "L 136.6 112.484627 \n",
       "L 158.3 116.790273 \n",
       "L 180 120.056433 \n",
       "L 201.7 122.500451 \n",
       "L 223.4 124.652137 \n",
       "\" style=\"fill:none;stroke:#4c72b0;stroke-linecap:round;stroke-width:1.75;\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_10\">\n",
       "    <path clip-path=\"url(#p060c997036)\" d=\"M 28.1 67.8416 \n",
       "L 49.8 32.186725 \n",
       "L 71.5 26.139175 \n",
       "L 93.2 22.48875 \n",
       "L 114.9 20.9259 \n",
       "L 136.6 19.329075 \n",
       "L 158.3 17.77755 \n",
       "L 180 16.512925 \n",
       "L 201.7 15.9882 \n",
       "L 223.4 14.965175 \n",
       "\" style=\"fill:none;stroke:#bf00bf;stroke-dasharray:6.475,2.8;stroke-dashoffset:0;stroke-width:1.75;\"/>\n",
       "   </g>\n",
       "   <g id=\"line2d_11\">\n",
       "    <path clip-path=\"url(#p060c997036)\" d=\"M 28.1 41.2203 \n",
       "L 49.8 39.92925 \n",
       "L 71.5 28.7175 \n",
       "L 93.2 24.52725 \n",
       "L 114.9 25.32 \n",
       "L 136.6 21.5148 \n",
       "L 158.3 20.13315 \n",
       "L 180 22.1943 \n",
       "L 201.7 20.2011 \n",
       "L 223.4 24.98025 \n",
       "\" style=\"fill:none;stroke:#008000;stroke-dasharray:11.2,2.8,1.75,2.8;stroke-dashoffset:0;stroke-width:1.75;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 28.1 143.1 \n",
       "L 28.1 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 223.4 143.1 \n",
       "L 223.4 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 28.1 143.1 \n",
       "L 223.4 143.1 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 28.1 7.2 \n",
       "L 223.4 7.2 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"legend_1\">\n",
       "    <g id=\"line2d_12\">\n",
       "     <path d=\"M 146.3875 59.914063 \n",
       "L 166.3875 59.914063 \n",
       "\" style=\"fill:none;stroke:#4c72b0;stroke-linecap:round;stroke-width:1.75;\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_13\"/>\n",
       "    <g id=\"text_10\">\n",
       "     <!-- train loss -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(174.3875 63.414063)scale(0.1 -0.1)\">\n",
       "      <defs>\n",
       "       <path d=\"M 27.046875 0.390625 \n",
       "Q 25.046875 -0.140625 22.96875 -0.453125 \n",
       "Q 20.90625 -0.78125 18.171875 -0.78125 \n",
       "Q 7.625 -0.78125 7.625 11.1875 \n",
       "L 7.625 46.4375 \n",
       "L 1.515625 46.4375 \n",
       "L 1.515625 52.828125 \n",
       "L 7.953125 52.828125 \n",
       "L 10.546875 64.65625 \n",
       "L 16.40625 64.65625 \n",
       "L 16.40625 52.828125 \n",
       "L 26.171875 52.828125 \n",
       "L 26.171875 46.4375 \n",
       "L 16.40625 46.4375 \n",
       "L 16.40625 13.09375 \n",
       "Q 16.40625 9.28125 17.640625 7.734375 \n",
       "Q 18.890625 6.203125 21.96875 6.203125 \n",
       "Q 23.25 6.203125 24.4375 6.390625 \n",
       "Q 25.640625 6.59375 27.046875 6.890625 \n",
       "z\n",
       "\" id=\"LiberationSans-116\"/>\n",
       "       <path d=\"M 6.9375 0 \n",
       "L 6.9375 40.53125 \n",
       "Q 6.9375 42.1875 6.90625 43.921875 \n",
       "Q 6.890625 45.65625 6.828125 47.265625 \n",
       "Q 6.78125 48.875 6.734375 50.28125 \n",
       "Q 6.6875 51.703125 6.640625 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 51.703125 15.0625 50.265625 \n",
       "Q 15.140625 48.828125 15.203125 47.3125 \n",
       "Q 15.28125 45.796875 15.296875 44.40625 \n",
       "Q 15.328125 43.015625 15.328125 42.046875 \n",
       "L 15.53125 42.046875 \n",
       "Q 16.453125 45.0625 17.5 47.28125 \n",
       "Q 18.5625 49.515625 19.96875 50.953125 \n",
       "Q 21.390625 52.390625 23.34375 53.09375 \n",
       "Q 25.296875 53.8125 28.078125 53.8125 \n",
       "Q 29.15625 53.8125 30.125 53.640625 \n",
       "Q 31.109375 53.46875 31.640625 53.328125 \n",
       "L 31.640625 45.265625 \n",
       "Q 30.765625 45.515625 29.59375 45.625 \n",
       "Q 28.421875 45.75 26.953125 45.75 \n",
       "Q 23.921875 45.75 21.796875 44.375 \n",
       "Q 19.671875 43.015625 18.328125 40.59375 \n",
       "Q 17 38.1875 16.359375 34.84375 \n",
       "Q 15.71875 31.5 15.71875 27.546875 \n",
       "L 15.71875 0 \n",
       "z\n",
       "\" id=\"LiberationSans-114\"/>\n",
       "       <path d=\"M 20.21875 -0.984375 \n",
       "Q 12.25 -0.984375 8.25 3.21875 \n",
       "Q 4.25 7.421875 4.25 14.75 \n",
       "Q 4.25 19.96875 6.21875 23.3125 \n",
       "Q 8.203125 26.65625 11.390625 28.5625 \n",
       "Q 14.59375 30.46875 18.6875 31.203125 \n",
       "Q 22.796875 31.9375 27.046875 32.03125 \n",
       "L 38.921875 32.234375 \n",
       "L 38.921875 35.109375 \n",
       "Q 38.921875 38.375 38.234375 40.671875 \n",
       "Q 37.546875 42.96875 36.125 44.375 \n",
       "Q 34.71875 45.796875 32.59375 46.453125 \n",
       "Q 30.46875 47.125 27.59375 47.125 \n",
       "Q 25.046875 47.125 23 46.75 \n",
       "Q 20.953125 46.390625 19.4375 45.4375 \n",
       "Q 17.921875 44.484375 16.984375 42.84375 \n",
       "Q 16.0625 41.21875 15.765625 38.71875 \n",
       "L 6.59375 39.546875 \n",
       "Q 7.078125 42.671875 8.4375 45.28125 \n",
       "Q 9.8125 47.90625 12.328125 49.796875 \n",
       "Q 14.84375 51.703125 18.625 52.75 \n",
       "Q 22.40625 53.8125 27.78125 53.8125 \n",
       "Q 37.75 53.8125 42.765625 49.234375 \n",
       "Q 47.796875 44.671875 47.796875 36.03125 \n",
       "L 47.796875 13.28125 \n",
       "Q 47.796875 9.375 48.828125 7.390625 \n",
       "Q 49.859375 5.421875 52.734375 5.421875 \n",
       "Q 53.46875 5.421875 54.203125 5.515625 \n",
       "Q 54.9375 5.609375 55.609375 5.765625 \n",
       "L 55.609375 0.296875 \n",
       "Q 53.953125 -0.09375 52.3125 -0.28125 \n",
       "Q 50.6875 -0.484375 48.828125 -0.484375 \n",
       "Q 46.34375 -0.484375 44.5625 0.171875 \n",
       "Q 42.78125 0.828125 41.65625 2.171875 \n",
       "Q 40.53125 3.515625 39.9375 5.484375 \n",
       "Q 39.359375 7.46875 39.203125 10.109375 \n",
       "L 38.921875 10.109375 \n",
       "Q 37.5 7.5625 35.8125 5.515625 \n",
       "Q 34.125 3.46875 31.875 2.03125 \n",
       "Q 29.640625 0.59375 26.78125 -0.1875 \n",
       "Q 23.921875 -0.984375 20.21875 -0.984375 \n",
       "z\n",
       "M 22.21875 5.609375 \n",
       "Q 26.421875 5.609375 29.5625 7.140625 \n",
       "Q 32.71875 8.6875 34.78125 11.078125 \n",
       "Q 36.859375 13.484375 37.890625 16.3125 \n",
       "Q 38.921875 19.140625 38.921875 21.734375 \n",
       "L 38.921875 26.078125 \n",
       "L 29.296875 25.875 \n",
       "Q 26.078125 25.828125 23.171875 25.40625 \n",
       "Q 20.265625 25 18.0625 23.78125 \n",
       "Q 15.875 22.5625 14.578125 20.359375 \n",
       "Q 13.28125 18.171875 13.28125 14.59375 \n",
       "Q 13.28125 10.296875 15.59375 7.953125 \n",
       "Q 17.921875 5.609375 22.21875 5.609375 \n",
       "z\n",
       "\" id=\"LiberationSans-97\"/>\n",
       "       <path d=\"M 6.6875 64.0625 \n",
       "L 6.6875 72.46875 \n",
       "L 15.484375 72.46875 \n",
       "L 15.484375 64.0625 \n",
       "z\n",
       "M 6.6875 0 \n",
       "L 6.6875 52.828125 \n",
       "L 15.484375 52.828125 \n",
       "L 15.484375 0 \n",
       "z\n",
       "\" id=\"LiberationSans-105\"/>\n",
       "       <path d=\"M 40.28125 0 \n",
       "L 40.28125 33.5 \n",
       "Q 40.28125 37.359375 39.71875 39.9375 \n",
       "Q 39.15625 42.53125 37.890625 44.109375 \n",
       "Q 36.625 45.703125 34.546875 46.359375 \n",
       "Q 32.46875 47.015625 29.390625 47.015625 \n",
       "Q 26.265625 47.015625 23.75 45.921875 \n",
       "Q 21.234375 44.828125 19.453125 42.75 \n",
       "Q 17.671875 40.671875 16.6875 37.625 \n",
       "Q 15.71875 34.578125 15.71875 30.609375 \n",
       "L 15.71875 0 \n",
       "L 6.9375 0 \n",
       "L 6.9375 41.546875 \n",
       "Q 6.9375 43.21875 6.90625 45.046875 \n",
       "Q 6.890625 46.875 6.828125 48.5 \n",
       "Q 6.78125 50.140625 6.734375 51.3125 \n",
       "Q 6.6875 52.484375 6.640625 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 52.59375 15.03125 51.515625 \n",
       "Q 15.09375 50.4375 15.15625 49.046875 \n",
       "Q 15.234375 47.65625 15.28125 46.21875 \n",
       "Q 15.328125 44.78125 15.328125 43.796875 \n",
       "L 15.484375 43.796875 \n",
       "Q 16.75 46.09375 18.265625 47.953125 \n",
       "Q 19.78125 49.8125 21.78125 51.09375 \n",
       "Q 23.78125 52.390625 26.359375 53.09375 \n",
       "Q 28.953125 53.8125 32.375 53.8125 \n",
       "Q 36.765625 53.8125 39.9375 52.734375 \n",
       "Q 43.109375 51.65625 45.15625 49.40625 \n",
       "Q 47.21875 47.171875 48.171875 43.625 \n",
       "Q 49.125 40.09375 49.125 35.203125 \n",
       "L 49.125 0 \n",
       "z\n",
       "\" id=\"LiberationSans-110\"/>\n",
       "       <path id=\"LiberationSans-32\"/>\n",
       "       <path d=\"M 6.734375 0 \n",
       "L 6.734375 72.46875 \n",
       "L 15.53125 72.46875 \n",
       "L 15.53125 0 \n",
       "z\n",
       "\" id=\"LiberationSans-108\"/>\n",
       "       <path d=\"M 46.390625 14.59375 \n",
       "Q 46.390625 10.890625 44.9375 7.984375 \n",
       "Q 43.5 5.078125 40.765625 3.09375 \n",
       "Q 38.03125 1.125 34.046875 0.0625 \n",
       "Q 30.078125 -0.984375 24.953125 -0.984375 \n",
       "Q 20.359375 -0.984375 16.671875 -0.265625 \n",
       "Q 12.984375 0.4375 10.203125 2 \n",
       "Q 7.421875 3.5625 5.53125 6.125 \n",
       "Q 3.65625 8.6875 2.78125 12.40625 \n",
       "L 10.546875 13.921875 \n",
       "Q 11.671875 9.671875 15.1875 7.6875 \n",
       "Q 18.703125 5.71875 24.953125 5.71875 \n",
       "Q 27.78125 5.71875 30.140625 6.109375 \n",
       "Q 32.515625 6.5 34.21875 7.453125 \n",
       "Q 35.9375 8.40625 36.890625 9.984375 \n",
       "Q 37.84375 11.578125 37.84375 13.921875 \n",
       "Q 37.84375 16.3125 36.71875 17.84375 \n",
       "Q 35.59375 19.390625 33.59375 20.40625 \n",
       "Q 31.59375 21.4375 28.734375 22.1875 \n",
       "Q 25.875 22.953125 22.46875 23.875 \n",
       "Q 19.28125 24.703125 16.15625 25.734375 \n",
       "Q 13.03125 26.765625 10.515625 28.4375 \n",
       "Q 8.015625 30.125 6.453125 32.609375 \n",
       "Q 4.890625 35.109375 4.890625 38.875 \n",
       "Q 4.890625 46.09375 10.03125 49.875 \n",
       "Q 15.1875 53.65625 25.046875 53.65625 \n",
       "Q 33.796875 53.65625 38.9375 50.578125 \n",
       "Q 44.09375 47.515625 45.453125 40.71875 \n",
       "L 37.546875 39.75 \n",
       "Q 37.109375 41.796875 35.9375 43.1875 \n",
       "Q 34.765625 44.578125 33.109375 45.4375 \n",
       "Q 31.453125 46.296875 29.375 46.65625 \n",
       "Q 27.296875 47.015625 25.046875 47.015625 \n",
       "Q 19.09375 47.015625 16.25 45.203125 \n",
       "Q 13.421875 43.40625 13.421875 39.75 \n",
       "Q 13.421875 37.59375 14.46875 36.203125 \n",
       "Q 15.53125 34.8125 17.40625 33.859375 \n",
       "Q 19.28125 32.90625 21.921875 32.203125 \n",
       "Q 24.5625 31.5 27.734375 30.71875 \n",
       "Q 29.828125 30.171875 32.03125 29.5625 \n",
       "Q 34.234375 28.953125 36.296875 28.09375 \n",
       "Q 38.375 27.25 40.203125 26.09375 \n",
       "Q 42.046875 24.953125 43.40625 23.34375 \n",
       "Q 44.78125 21.734375 45.578125 19.578125 \n",
       "Q 46.390625 17.4375 46.390625 14.59375 \n",
       "z\n",
       "\" id=\"LiberationSans-115\"/>\n",
       "      </defs>\n",
       "      <use xlink:href=\"#LiberationSans-116\"/>\n",
       "      <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "      <use x=\"61.083984\" xlink:href=\"#LiberationSans-97\"/>\n",
       "      <use x=\"116.699219\" xlink:href=\"#LiberationSans-105\"/>\n",
       "      <use x=\"138.916016\" xlink:href=\"#LiberationSans-110\"/>\n",
       "      <use x=\"194.53125\" xlink:href=\"#LiberationSans-32\"/>\n",
       "      <use x=\"222.314453\" xlink:href=\"#LiberationSans-108\"/>\n",
       "      <use x=\"244.53125\" xlink:href=\"#LiberationSans-111\"/>\n",
       "      <use x=\"300.146484\" xlink:href=\"#LiberationSans-115\"/>\n",
       "      <use x=\"350.146484\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_14\">\n",
       "     <path d=\"M 146.3875 74.235938 \n",
       "L 166.3875 74.235938 \n",
       "\" style=\"fill:none;stroke:#bf00bf;stroke-dasharray:6.475,2.8;stroke-dashoffset:0;stroke-width:1.75;\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_15\"/>\n",
       "    <g id=\"text_11\">\n",
       "     <!-- train acc -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(174.3875 77.735938)scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#LiberationSans-116\"/>\n",
       "      <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "      <use x=\"61.083984\" xlink:href=\"#LiberationSans-97\"/>\n",
       "      <use x=\"116.699219\" xlink:href=\"#LiberationSans-105\"/>\n",
       "      <use x=\"138.916016\" xlink:href=\"#LiberationSans-110\"/>\n",
       "      <use x=\"194.53125\" xlink:href=\"#LiberationSans-32\"/>\n",
       "      <use x=\"222.314453\" xlink:href=\"#LiberationSans-97\"/>\n",
       "      <use x=\"277.929688\" xlink:href=\"#LiberationSans-99\"/>\n",
       "      <use x=\"327.929688\" xlink:href=\"#LiberationSans-99\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "    <g id=\"line2d_16\">\n",
       "     <path d=\"M 146.3875 88.557813 \n",
       "L 166.3875 88.557813 \n",
       "\" style=\"fill:none;stroke:#008000;stroke-dasharray:11.2,2.8,1.75,2.8;stroke-dashoffset:0;stroke-width:1.75;\"/>\n",
       "    </g>\n",
       "    <g id=\"line2d_17\"/>\n",
       "    <g id=\"text_12\">\n",
       "     <!-- test acc -->\n",
       "     <g style=\"fill:#262626;\" transform=\"translate(174.3875 92.057813)scale(0.1 -0.1)\">\n",
       "      <use xlink:href=\"#LiberationSans-116\"/>\n",
       "      <use x=\"27.783203\" xlink:href=\"#LiberationSans-101\"/>\n",
       "      <use x=\"83.398438\" xlink:href=\"#LiberationSans-115\"/>\n",
       "      <use x=\"133.398438\" xlink:href=\"#LiberationSans-116\"/>\n",
       "      <use x=\"161.181641\" xlink:href=\"#LiberationSans-32\"/>\n",
       "      <use x=\"188.964844\" xlink:href=\"#LiberationSans-97\"/>\n",
       "      <use x=\"244.580078\" xlink:href=\"#LiberationSans-99\"/>\n",
       "      <use x=\"294.580078\" xlink:href=\"#LiberationSans-99\"/>\n",
       "     </g>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"p060c997036\">\n",
       "   <rect height=\"135.9\" width=\"195.3\" x=\"28.1\" y=\"7.2\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 252x180 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from softmax_regression_scratch import train_ch3   # 导入训练函数\n",
    "train_ch3(net, train_iter, test_iter, loss, num_epochs, updater)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "# 预测"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "slideshow": {
     "slide_type": "slide"
    }
   },
   "source": [
    "- 在检验集上应用训练好的模型"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "execution": {
     "iopub.execute_input": "2022-07-31T02:42:19.712145Z",
     "iopub.status.busy": "2022-07-31T02:42:19.711638Z",
     "iopub.status.idle": "2022-07-31T02:42:20.218004Z",
     "shell.execute_reply": "2022-07-31T02:42:20.217299Z"
    },
    "origin_pos": 26,
    "slideshow": {
     "slide_type": "fragment"
    },
    "tab": [
     "pytorch"
    ]
   },
   "outputs": [
    {
     "data": {
      "image/svg+xml": [
       "<?xml version=\"1.0\" encoding=\"utf-8\" standalone=\"no\"?>\n",
       "<!DOCTYPE svg PUBLIC \"-//W3C//DTD SVG 1.1//EN\"\n",
       "  \"http://www.w3.org/Graphics/SVG/1.1/DTD/svg11.dtd\">\n",
       "<!-- Created with matplotlib (https://matplotlib.org/) -->\n",
       "<svg height=\"113.764607pt\" version=\"1.1\" viewBox=\"0 0 516.6 113.764607\" width=\"516.6pt\" xmlns=\"http://www.w3.org/2000/svg\" xmlns:xlink=\"http://www.w3.org/1999/xlink\">\n",
       " <metadata>\n",
       "  <rdf:RDF xmlns:cc=\"http://creativecommons.org/ns#\" xmlns:dc=\"http://purl.org/dc/elements/1.1/\" xmlns:rdf=\"http://www.w3.org/1999/02/22-rdf-syntax-ns#\">\n",
       "   <cc:Work>\n",
       "    <dc:type rdf:resource=\"http://purl.org/dc/dcmitype/StillImage\"/>\n",
       "    <dc:date>2023-11-19T20:55:47.144449</dc:date>\n",
       "    <dc:format>image/svg+xml</dc:format>\n",
       "    <dc:creator>\n",
       "     <cc:Agent>\n",
       "      <dc:title>Matplotlib v3.3.4, https://matplotlib.org/</dc:title>\n",
       "     </cc:Agent>\n",
       "    </dc:creator>\n",
       "   </cc:Work>\n",
       "  </rdf:RDF>\n",
       " </metadata>\n",
       " <defs>\n",
       "  <style type=\"text/css\">*{stroke-linecap:butt;stroke-linejoin:round;}</style>\n",
       " </defs>\n",
       " <g id=\"figure_1\">\n",
       "  <g id=\"patch_1\">\n",
       "   <path d=\"M 0 113.764607 \n",
       "L 516.6 113.764607 \n",
       "L 516.6 0 \n",
       "L 0 0 \n",
       "z\n",
       "\" style=\"fill:#ffffff;\"/>\n",
       "  </g>\n",
       "  <g id=\"axes_1\">\n",
       "   <g id=\"patch_2\">\n",
       "    <path d=\"M 7.2 106.564607 \n",
       "L 78.942857 106.564607 \n",
       "L 78.942857 34.82175 \n",
       "L 7.2 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pc960e4cc42)\">\n",
       "    <image height=\"72\" id=\"image03e66f5d12\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"7.2\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_3\">\n",
       "    <path d=\"M 7.2 106.564607 \n",
       "L 7.2 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_4\">\n",
       "    <path d=\"M 78.942857 106.564607 \n",
       "L 78.942857 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_5\">\n",
       "    <path d=\"M 7.2 106.564607 \n",
       "L 78.942857 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_6\">\n",
       "    <path d=\"M 7.2 34.82175 \n",
       "L 78.942857 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_1\">\n",
       "    <!-- ankle boot -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(15.385179 15.89625)scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path d=\"M 20.21875 -0.984375 \n",
       "Q 12.25 -0.984375 8.25 3.21875 \n",
       "Q 4.25 7.421875 4.25 14.75 \n",
       "Q 4.25 19.96875 6.21875 23.3125 \n",
       "Q 8.203125 26.65625 11.390625 28.5625 \n",
       "Q 14.59375 30.46875 18.6875 31.203125 \n",
       "Q 22.796875 31.9375 27.046875 32.03125 \n",
       "L 38.921875 32.234375 \n",
       "L 38.921875 35.109375 \n",
       "Q 38.921875 38.375 38.234375 40.671875 \n",
       "Q 37.546875 42.96875 36.125 44.375 \n",
       "Q 34.71875 45.796875 32.59375 46.453125 \n",
       "Q 30.46875 47.125 27.59375 47.125 \n",
       "Q 25.046875 47.125 23 46.75 \n",
       "Q 20.953125 46.390625 19.4375 45.4375 \n",
       "Q 17.921875 44.484375 16.984375 42.84375 \n",
       "Q 16.0625 41.21875 15.765625 38.71875 \n",
       "L 6.59375 39.546875 \n",
       "Q 7.078125 42.671875 8.4375 45.28125 \n",
       "Q 9.8125 47.90625 12.328125 49.796875 \n",
       "Q 14.84375 51.703125 18.625 52.75 \n",
       "Q 22.40625 53.8125 27.78125 53.8125 \n",
       "Q 37.75 53.8125 42.765625 49.234375 \n",
       "Q 47.796875 44.671875 47.796875 36.03125 \n",
       "L 47.796875 13.28125 \n",
       "Q 47.796875 9.375 48.828125 7.390625 \n",
       "Q 49.859375 5.421875 52.734375 5.421875 \n",
       "Q 53.46875 5.421875 54.203125 5.515625 \n",
       "Q 54.9375 5.609375 55.609375 5.765625 \n",
       "L 55.609375 0.296875 \n",
       "Q 53.953125 -0.09375 52.3125 -0.28125 \n",
       "Q 50.6875 -0.484375 48.828125 -0.484375 \n",
       "Q 46.34375 -0.484375 44.5625 0.171875 \n",
       "Q 42.78125 0.828125 41.65625 2.171875 \n",
       "Q 40.53125 3.515625 39.9375 5.484375 \n",
       "Q 39.359375 7.46875 39.203125 10.109375 \n",
       "L 38.921875 10.109375 \n",
       "Q 37.5 7.5625 35.8125 5.515625 \n",
       "Q 34.125 3.46875 31.875 2.03125 \n",
       "Q 29.640625 0.59375 26.78125 -0.1875 \n",
       "Q 23.921875 -0.984375 20.21875 -0.984375 \n",
       "z\n",
       "M 22.21875 5.609375 \n",
       "Q 26.421875 5.609375 29.5625 7.140625 \n",
       "Q 32.71875 8.6875 34.78125 11.078125 \n",
       "Q 36.859375 13.484375 37.890625 16.3125 \n",
       "Q 38.921875 19.140625 38.921875 21.734375 \n",
       "L 38.921875 26.078125 \n",
       "L 29.296875 25.875 \n",
       "Q 26.078125 25.828125 23.171875 25.40625 \n",
       "Q 20.265625 25 18.0625 23.78125 \n",
       "Q 15.875 22.5625 14.578125 20.359375 \n",
       "Q 13.28125 18.171875 13.28125 14.59375 \n",
       "Q 13.28125 10.296875 15.59375 7.953125 \n",
       "Q 17.921875 5.609375 22.21875 5.609375 \n",
       "z\n",
       "\" id=\"LiberationSans-97\"/>\n",
       "      <path d=\"M 40.28125 0 \n",
       "L 40.28125 33.5 \n",
       "Q 40.28125 37.359375 39.71875 39.9375 \n",
       "Q 39.15625 42.53125 37.890625 44.109375 \n",
       "Q 36.625 45.703125 34.546875 46.359375 \n",
       "Q 32.46875 47.015625 29.390625 47.015625 \n",
       "Q 26.265625 47.015625 23.75 45.921875 \n",
       "Q 21.234375 44.828125 19.453125 42.75 \n",
       "Q 17.671875 40.671875 16.6875 37.625 \n",
       "Q 15.71875 34.578125 15.71875 30.609375 \n",
       "L 15.71875 0 \n",
       "L 6.9375 0 \n",
       "L 6.9375 41.546875 \n",
       "Q 6.9375 43.21875 6.90625 45.046875 \n",
       "Q 6.890625 46.875 6.828125 48.5 \n",
       "Q 6.78125 50.140625 6.734375 51.3125 \n",
       "Q 6.6875 52.484375 6.640625 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 52.59375 15.03125 51.515625 \n",
       "Q 15.09375 50.4375 15.15625 49.046875 \n",
       "Q 15.234375 47.65625 15.28125 46.21875 \n",
       "Q 15.328125 44.78125 15.328125 43.796875 \n",
       "L 15.484375 43.796875 \n",
       "Q 16.75 46.09375 18.265625 47.953125 \n",
       "Q 19.78125 49.8125 21.78125 51.09375 \n",
       "Q 23.78125 52.390625 26.359375 53.09375 \n",
       "Q 28.953125 53.8125 32.375 53.8125 \n",
       "Q 36.765625 53.8125 39.9375 52.734375 \n",
       "Q 43.109375 51.65625 45.15625 49.40625 \n",
       "Q 47.21875 47.171875 48.171875 43.625 \n",
       "Q 49.125 40.09375 49.125 35.203125 \n",
       "L 49.125 0 \n",
       "z\n",
       "\" id=\"LiberationSans-110\"/>\n",
       "      <path d=\"M 39.84375 0 \n",
       "L 21.96875 24.125 \n",
       "L 15.53125 18.796875 \n",
       "L 15.53125 0 \n",
       "L 6.734375 0 \n",
       "L 6.734375 72.46875 \n",
       "L 15.53125 72.46875 \n",
       "L 15.53125 27.203125 \n",
       "L 38.71875 52.828125 \n",
       "L 49.03125 52.828125 \n",
       "L 27.59375 30.125 \n",
       "L 50.140625 0 \n",
       "z\n",
       "\" id=\"LiberationSans-107\"/>\n",
       "      <path d=\"M 6.734375 0 \n",
       "L 6.734375 72.46875 \n",
       "L 15.53125 72.46875 \n",
       "L 15.53125 0 \n",
       "z\n",
       "\" id=\"LiberationSans-108\"/>\n",
       "      <path d=\"M 13.484375 24.5625 \n",
       "Q 13.484375 20.40625 14.328125 16.90625 \n",
       "Q 15.1875 13.421875 16.96875 10.90625 \n",
       "Q 18.75 8.40625 21.53125 7 \n",
       "Q 24.3125 5.609375 28.21875 5.609375 \n",
       "Q 33.9375 5.609375 37.375 7.90625 \n",
       "Q 40.828125 10.203125 42.046875 13.71875 \n",
       "L 49.75 11.53125 \n",
       "Q 48.921875 9.328125 47.4375 7.109375 \n",
       "Q 45.953125 4.890625 43.453125 3.09375 \n",
       "Q 40.96875 1.3125 37.234375 0.15625 \n",
       "Q 33.5 -0.984375 28.21875 -0.984375 \n",
       "Q 16.5 -0.984375 10.375 6 \n",
       "Q 4.25 12.984375 4.25 26.765625 \n",
       "Q 4.25 34.1875 6.09375 39.328125 \n",
       "Q 7.953125 44.484375 11.171875 47.703125 \n",
       "Q 14.40625 50.921875 18.703125 52.359375 \n",
       "Q 23 53.8125 27.875 53.8125 \n",
       "Q 34.515625 53.8125 38.984375 51.65625 \n",
       "Q 43.453125 49.515625 46.15625 45.71875 \n",
       "Q 48.875 41.9375 50.015625 36.8125 \n",
       "Q 51.171875 31.6875 51.171875 25.734375 \n",
       "L 51.171875 24.5625 \n",
       "z\n",
       "M 42.09375 31.296875 \n",
       "Q 41.359375 39.65625 37.84375 43.484375 \n",
       "Q 34.328125 47.3125 27.734375 47.3125 \n",
       "Q 25.53125 47.3125 23.109375 46.609375 \n",
       "Q 20.703125 45.90625 18.65625 44.09375 \n",
       "Q 16.609375 42.28125 15.1875 39.171875 \n",
       "Q 13.765625 36.078125 13.578125 31.296875 \n",
       "z\n",
       "\" id=\"LiberationSans-101\"/>\n",
       "      <path id=\"LiberationSans-32\"/>\n",
       "      <path d=\"M 51.421875 26.65625 \n",
       "Q 51.421875 -0.984375 31.984375 -0.984375 \n",
       "Q 25.984375 -0.984375 22 1.1875 \n",
       "Q 18.015625 3.375 15.53125 8.203125 \n",
       "L 15.4375 8.203125 \n",
       "Q 15.4375 6.9375 15.359375 5.5625 \n",
       "Q 15.28125 4.203125 15.203125 3.03125 \n",
       "Q 15.140625 1.859375 15.0625 1.03125 \n",
       "Q 14.984375 0.203125 14.9375 0 \n",
       "L 6.453125 0 \n",
       "Q 6.5 0.4375 6.546875 1.484375 \n",
       "Q 6.59375 2.546875 6.640625 4 \n",
       "Q 6.6875 5.46875 6.703125 7.21875 \n",
       "Q 6.734375 8.984375 6.734375 10.890625 \n",
       "L 6.734375 72.46875 \n",
       "L 15.53125 72.46875 \n",
       "L 15.53125 51.8125 \n",
       "Q 15.53125 50.34375 15.5 49 \n",
       "Q 15.484375 47.65625 15.4375 46.625 \n",
       "Q 15.375 45.40625 15.328125 44.34375 \n",
       "L 15.53125 44.34375 \n",
       "Q 17.96875 49.421875 22 51.609375 \n",
       "Q 26.03125 53.8125 31.984375 53.8125 \n",
       "Q 42 53.8125 46.703125 47.0625 \n",
       "Q 51.421875 40.328125 51.421875 26.65625 \n",
       "z\n",
       "M 42.1875 26.375 \n",
       "Q 42.1875 31.84375 41.5 35.75 \n",
       "Q 40.828125 39.65625 39.3125 42.15625 \n",
       "Q 37.796875 44.671875 35.453125 45.84375 \n",
       "Q 33.109375 47.015625 29.734375 47.015625 \n",
       "Q 26.265625 47.015625 23.609375 45.890625 \n",
       "Q 20.953125 44.78125 19.171875 42.28125 \n",
       "Q 17.390625 39.796875 16.453125 35.734375 \n",
       "Q 15.53125 31.6875 15.53125 25.828125 \n",
       "Q 15.53125 20.171875 16.453125 16.3125 \n",
       "Q 17.390625 12.453125 19.171875 10.03125 \n",
       "Q 20.953125 7.625 23.578125 6.5625 \n",
       "Q 26.21875 5.515625 29.640625 5.515625 \n",
       "Q 32.859375 5.515625 35.203125 6.640625 \n",
       "Q 37.546875 7.765625 39.109375 10.25 \n",
       "Q 40.671875 12.75 41.421875 16.71875 \n",
       "Q 42.1875 20.703125 42.1875 26.375 \n",
       "z\n",
       "\" id=\"LiberationSans-98\"/>\n",
       "      <path d=\"M 51.421875 26.46875 \n",
       "Q 51.421875 12.59375 45.3125 5.796875 \n",
       "Q 39.203125 -0.984375 27.59375 -0.984375 \n",
       "Q 22.078125 -0.984375 17.71875 0.671875 \n",
       "Q 13.375 2.34375 10.375 5.765625 \n",
       "Q 7.375 9.1875 5.78125 14.328125 \n",
       "Q 4.203125 19.484375 4.203125 26.46875 \n",
       "Q 4.203125 53.8125 27.875 53.8125 \n",
       "Q 34.03125 53.8125 38.5 52.09375 \n",
       "Q 42.96875 50.390625 45.828125 46.96875 \n",
       "Q 48.6875 43.5625 50.046875 38.421875 \n",
       "Q 51.421875 33.296875 51.421875 26.46875 \n",
       "z\n",
       "M 42.1875 26.46875 \n",
       "Q 42.1875 32.625 41.234375 36.625 \n",
       "Q 40.28125 40.625 38.453125 43.015625 \n",
       "Q 36.625 45.40625 33.984375 46.359375 \n",
       "Q 31.34375 47.3125 28.03125 47.3125 \n",
       "Q 24.65625 47.3125 21.9375 46.3125 \n",
       "Q 19.234375 45.3125 17.328125 42.890625 \n",
       "Q 15.4375 40.484375 14.421875 36.46875 \n",
       "Q 13.421875 32.46875 13.421875 26.46875 \n",
       "Q 13.421875 20.3125 14.5 16.28125 \n",
       "Q 15.578125 12.25 17.453125 9.859375 \n",
       "Q 19.34375 7.46875 21.90625 6.484375 \n",
       "Q 24.46875 5.515625 27.484375 5.515625 \n",
       "Q 30.859375 5.515625 33.59375 6.46875 \n",
       "Q 36.328125 7.421875 38.234375 9.8125 \n",
       "Q 40.140625 12.203125 41.15625 16.25 \n",
       "Q 42.1875 20.3125 42.1875 26.46875 \n",
       "z\n",
       "\" id=\"LiberationSans-111\"/>\n",
       "      <path d=\"M 27.046875 0.390625 \n",
       "Q 25.046875 -0.140625 22.96875 -0.453125 \n",
       "Q 20.90625 -0.78125 18.171875 -0.78125 \n",
       "Q 7.625 -0.78125 7.625 11.1875 \n",
       "L 7.625 46.4375 \n",
       "L 1.515625 46.4375 \n",
       "L 1.515625 52.828125 \n",
       "L 7.953125 52.828125 \n",
       "L 10.546875 64.65625 \n",
       "L 16.40625 64.65625 \n",
       "L 16.40625 52.828125 \n",
       "L 26.171875 52.828125 \n",
       "L 26.171875 46.4375 \n",
       "L 16.40625 46.4375 \n",
       "L 16.40625 13.09375 \n",
       "Q 16.40625 9.28125 17.640625 7.734375 \n",
       "Q 18.890625 6.203125 21.96875 6.203125 \n",
       "Q 23.25 6.203125 24.4375 6.390625 \n",
       "Q 25.640625 6.59375 27.046875 6.890625 \n",
       "z\n",
       "\" id=\"LiberationSans-116\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#LiberationSans-97\"/>\n",
       "     <use x=\"55.615234\" xlink:href=\"#LiberationSans-110\"/>\n",
       "     <use x=\"111.230469\" xlink:href=\"#LiberationSans-107\"/>\n",
       "     <use x=\"161.230469\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"183.447266\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"239.0625\" xlink:href=\"#LiberationSans-32\"/>\n",
       "     <use x=\"266.845703\" xlink:href=\"#LiberationSans-98\"/>\n",
       "     <use x=\"322.460938\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"378.076172\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"433.691406\" xlink:href=\"#LiberationSans-116\"/>\n",
       "    </g>\n",
       "    <!-- ankle boot -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(15.385179 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-97\"/>\n",
       "     <use x=\"55.615234\" xlink:href=\"#LiberationSans-110\"/>\n",
       "     <use x=\"111.230469\" xlink:href=\"#LiberationSans-107\"/>\n",
       "     <use x=\"161.230469\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"183.447266\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"239.0625\" xlink:href=\"#LiberationSans-32\"/>\n",
       "     <use x=\"266.845703\" xlink:href=\"#LiberationSans-98\"/>\n",
       "     <use x=\"322.460938\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"378.076172\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"433.691406\" xlink:href=\"#LiberationSans-116\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_2\">\n",
       "   <g id=\"patch_7\">\n",
       "    <path d=\"M 93.291429 106.564607 \n",
       "L 165.034286 106.564607 \n",
       "L 165.034286 34.82175 \n",
       "L 93.291429 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p211b5f6677)\">\n",
       "    <image height=\"72\" id=\"image94a2cb83c6\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"93.291429\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_8\">\n",
       "    <path d=\"M 93.291429 106.564607 \n",
       "L 93.291429 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_9\">\n",
       "    <path d=\"M 165.034286 106.564607 \n",
       "L 165.034286 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_10\">\n",
       "    <path d=\"M 93.291429 106.564607 \n",
       "L 165.034286 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_11\">\n",
       "    <path d=\"M 93.291429 34.82175 \n",
       "L 165.034286 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_2\">\n",
       "    <!-- pullover -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(108.152545 15.89625)scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path d=\"M 51.421875 26.65625 \n",
       "Q 51.421875 20.65625 50.4375 15.578125 \n",
       "Q 49.46875 10.5 47.1875 6.828125 \n",
       "Q 44.921875 3.171875 41.1875 1.09375 \n",
       "Q 37.453125 -0.984375 31.984375 -0.984375 \n",
       "Q 26.3125 -0.984375 22.0625 1.171875 \n",
       "Q 17.828125 3.328125 15.578125 8.203125 \n",
       "L 15.328125 8.203125 \n",
       "Q 15.375 8.109375 15.40625 7.328125 \n",
       "Q 15.4375 6.546875 15.453125 5.375 \n",
       "Q 15.484375 4.203125 15.5 2.75 \n",
       "Q 15.53125 1.3125 15.53125 -0.09375 \n",
       "L 15.53125 -20.75 \n",
       "L 6.734375 -20.75 \n",
       "L 6.734375 42.046875 \n",
       "Q 6.734375 43.953125 6.703125 45.703125 \n",
       "Q 6.6875 47.46875 6.640625 48.90625 \n",
       "Q 6.59375 50.34375 6.546875 51.359375 \n",
       "Q 6.5 52.390625 6.453125 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 52.6875 15.0625 51.796875 \n",
       "Q 15.140625 50.921875 15.203125 49.671875 \n",
       "Q 15.28125 48.4375 15.359375 47.015625 \n",
       "Q 15.4375 45.609375 15.4375 44.34375 \n",
       "L 15.625 44.34375 \n",
       "Q 16.84375 46.875 18.40625 48.65625 \n",
       "Q 19.96875 50.4375 21.96875 51.578125 \n",
       "Q 23.96875 52.734375 26.4375 53.25 \n",
       "Q 28.90625 53.765625 31.984375 53.765625 \n",
       "Q 37.453125 53.765625 41.1875 51.8125 \n",
       "Q 44.921875 49.859375 47.1875 46.3125 \n",
       "Q 49.46875 42.78125 50.4375 37.765625 \n",
       "Q 51.421875 32.765625 51.421875 26.65625 \n",
       "z\n",
       "M 42.1875 26.46875 \n",
       "Q 42.1875 31.34375 41.59375 35.15625 \n",
       "Q 41.015625 38.96875 39.578125 41.59375 \n",
       "Q 38.140625 44.234375 35.734375 45.59375 \n",
       "Q 33.34375 46.96875 29.734375 46.96875 \n",
       "Q 26.8125 46.96875 24.21875 46.140625 \n",
       "Q 21.625 45.3125 19.703125 42.96875 \n",
       "Q 17.78125 40.625 16.65625 36.5 \n",
       "Q 15.53125 32.375 15.53125 25.78125 \n",
       "Q 15.53125 20.171875 16.453125 16.28125 \n",
       "Q 17.390625 12.40625 19.171875 10.015625 \n",
       "Q 20.953125 7.625 23.578125 6.5625 \n",
       "Q 26.21875 5.515625 29.640625 5.515625 \n",
       "Q 33.296875 5.515625 35.71875 6.921875 \n",
       "Q 38.140625 8.34375 39.578125 11.03125 \n",
       "Q 41.015625 13.71875 41.59375 17.59375 \n",
       "Q 42.1875 21.484375 42.1875 26.46875 \n",
       "z\n",
       "\" id=\"LiberationSans-112\"/>\n",
       "      <path d=\"M 15.328125 52.828125 \n",
       "L 15.328125 19.34375 \n",
       "Q 15.328125 15.484375 15.890625 12.890625 \n",
       "Q 16.453125 10.296875 17.71875 8.703125 \n",
       "Q 19 7.125 21.0625 6.46875 \n",
       "Q 23.140625 5.8125 26.21875 5.8125 \n",
       "Q 29.34375 5.8125 31.859375 6.90625 \n",
       "Q 34.375 8.015625 36.15625 10.078125 \n",
       "Q 37.9375 12.15625 38.90625 15.203125 \n",
       "Q 39.890625 18.265625 39.890625 22.21875 \n",
       "L 39.890625 52.828125 \n",
       "L 48.6875 52.828125 \n",
       "L 48.6875 11.28125 \n",
       "Q 48.6875 9.625 48.703125 7.78125 \n",
       "Q 48.734375 5.953125 48.78125 4.3125 \n",
       "Q 48.828125 2.6875 48.875 1.515625 \n",
       "Q 48.921875 0.34375 48.96875 0 \n",
       "L 40.671875 0 \n",
       "Q 40.625 0.25 40.578125 1.3125 \n",
       "Q 40.53125 2.390625 40.453125 3.78125 \n",
       "Q 40.375 5.171875 40.328125 6.609375 \n",
       "Q 40.28125 8.0625 40.28125 9.03125 \n",
       "L 40.140625 9.03125 \n",
       "Q 38.875 6.734375 37.359375 4.875 \n",
       "Q 35.84375 3.03125 33.84375 1.734375 \n",
       "Q 31.84375 0.4375 29.25 -0.265625 \n",
       "Q 26.65625 -0.984375 23.25 -0.984375 \n",
       "Q 18.84375 -0.984375 15.671875 0.09375 \n",
       "Q 12.5 1.171875 10.453125 3.421875 \n",
       "Q 8.40625 5.671875 7.453125 9.1875 \n",
       "Q 6.5 12.703125 6.5 17.625 \n",
       "L 6.5 52.828125 \n",
       "z\n",
       "\" id=\"LiberationSans-117\"/>\n",
       "      <path d=\"M 29.9375 0 \n",
       "L 19.53125 0 \n",
       "L 0.34375 52.828125 \n",
       "L 9.71875 52.828125 \n",
       "L 21.34375 18.453125 \n",
       "Q 21.6875 17.390625 22.140625 15.84375 \n",
       "Q 22.609375 14.3125 23.09375 12.640625 \n",
       "Q 23.578125 10.984375 24 9.4375 \n",
       "Q 24.421875 7.90625 24.703125 6.890625 \n",
       "Q 25 7.90625 25.453125 9.4375 \n",
       "Q 25.921875 10.984375 26.40625 12.59375 \n",
       "Q 26.90625 14.203125 27.421875 15.734375 \n",
       "Q 27.9375 17.28125 28.328125 18.359375 \n",
       "L 40.328125 52.828125 \n",
       "L 49.65625 52.828125 \n",
       "z\n",
       "\" id=\"LiberationSans-118\"/>\n",
       "      <path d=\"M 6.9375 0 \n",
       "L 6.9375 40.53125 \n",
       "Q 6.9375 42.1875 6.90625 43.921875 \n",
       "Q 6.890625 45.65625 6.828125 47.265625 \n",
       "Q 6.78125 48.875 6.734375 50.28125 \n",
       "Q 6.6875 51.703125 6.640625 52.828125 \n",
       "L 14.9375 52.828125 \n",
       "Q 14.984375 51.703125 15.0625 50.265625 \n",
       "Q 15.140625 48.828125 15.203125 47.3125 \n",
       "Q 15.28125 45.796875 15.296875 44.40625 \n",
       "Q 15.328125 43.015625 15.328125 42.046875 \n",
       "L 15.53125 42.046875 \n",
       "Q 16.453125 45.0625 17.5 47.28125 \n",
       "Q 18.5625 49.515625 19.96875 50.953125 \n",
       "Q 21.390625 52.390625 23.34375 53.09375 \n",
       "Q 25.296875 53.8125 28.078125 53.8125 \n",
       "Q 29.15625 53.8125 30.125 53.640625 \n",
       "Q 31.109375 53.46875 31.640625 53.328125 \n",
       "L 31.640625 45.265625 \n",
       "Q 30.765625 45.515625 29.59375 45.625 \n",
       "Q 28.421875 45.75 26.953125 45.75 \n",
       "Q 23.921875 45.75 21.796875 44.375 \n",
       "Q 19.671875 43.015625 18.328125 40.59375 \n",
       "Q 17 38.1875 16.359375 34.84375 \n",
       "Q 15.71875 31.5 15.71875 27.546875 \n",
       "L 15.71875 0 \n",
       "z\n",
       "\" id=\"LiberationSans-114\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#LiberationSans-112\"/>\n",
       "     <use x=\"55.615234\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"111.230469\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"133.447266\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"155.664062\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"211.279297\" xlink:href=\"#LiberationSans-118\"/>\n",
       "     <use x=\"261.279297\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"316.894531\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "    <!-- pullover -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(108.152545 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-112\"/>\n",
       "     <use x=\"55.615234\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"111.230469\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"133.447266\" xlink:href=\"#LiberationSans-108\"/>\n",
       "     <use x=\"155.664062\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"211.279297\" xlink:href=\"#LiberationSans-118\"/>\n",
       "     <use x=\"261.279297\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"316.894531\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_3\">\n",
       "   <g id=\"patch_12\">\n",
       "    <path d=\"M 179.382857 106.564607 \n",
       "L 251.125714 106.564607 \n",
       "L 251.125714 34.82175 \n",
       "L 179.382857 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p67ab145f8c)\">\n",
       "    <image height=\"72\" id=\"imagefc043dd1ca\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"179.382857\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_13\">\n",
       "    <path d=\"M 179.382857 106.564607 \n",
       "L 179.382857 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_14\">\n",
       "    <path d=\"M 251.125714 106.564607 \n",
       "L 251.125714 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_15\">\n",
       "    <path d=\"M 179.382857 106.564607 \n",
       "L 251.125714 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_16\">\n",
       "    <path d=\"M 179.382857 34.82175 \n",
       "L 251.125714 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_3\">\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(196.582098 15.89625)scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path d=\"M 46.390625 14.59375 \n",
       "Q 46.390625 10.890625 44.9375 7.984375 \n",
       "Q 43.5 5.078125 40.765625 3.09375 \n",
       "Q 38.03125 1.125 34.046875 0.0625 \n",
       "Q 30.078125 -0.984375 24.953125 -0.984375 \n",
       "Q 20.359375 -0.984375 16.671875 -0.265625 \n",
       "Q 12.984375 0.4375 10.203125 2 \n",
       "Q 7.421875 3.5625 5.53125 6.125 \n",
       "Q 3.65625 8.6875 2.78125 12.40625 \n",
       "L 10.546875 13.921875 \n",
       "Q 11.671875 9.671875 15.1875 7.6875 \n",
       "Q 18.703125 5.71875 24.953125 5.71875 \n",
       "Q 27.78125 5.71875 30.140625 6.109375 \n",
       "Q 32.515625 6.5 34.21875 7.453125 \n",
       "Q 35.9375 8.40625 36.890625 9.984375 \n",
       "Q 37.84375 11.578125 37.84375 13.921875 \n",
       "Q 37.84375 16.3125 36.71875 17.84375 \n",
       "Q 35.59375 19.390625 33.59375 20.40625 \n",
       "Q 31.59375 21.4375 28.734375 22.1875 \n",
       "Q 25.875 22.953125 22.46875 23.875 \n",
       "Q 19.28125 24.703125 16.15625 25.734375 \n",
       "Q 13.03125 26.765625 10.515625 28.4375 \n",
       "Q 8.015625 30.125 6.453125 32.609375 \n",
       "Q 4.890625 35.109375 4.890625 38.875 \n",
       "Q 4.890625 46.09375 10.03125 49.875 \n",
       "Q 15.1875 53.65625 25.046875 53.65625 \n",
       "Q 33.796875 53.65625 38.9375 50.578125 \n",
       "Q 44.09375 47.515625 45.453125 40.71875 \n",
       "L 37.546875 39.75 \n",
       "Q 37.109375 41.796875 35.9375 43.1875 \n",
       "Q 34.765625 44.578125 33.109375 45.4375 \n",
       "Q 31.453125 46.296875 29.375 46.65625 \n",
       "Q 27.296875 47.015625 25.046875 47.015625 \n",
       "Q 19.09375 47.015625 16.25 45.203125 \n",
       "Q 13.421875 43.40625 13.421875 39.75 \n",
       "Q 13.421875 37.59375 14.46875 36.203125 \n",
       "Q 15.53125 34.8125 17.40625 33.859375 \n",
       "Q 19.28125 32.90625 21.921875 32.203125 \n",
       "Q 24.5625 31.5 27.734375 30.71875 \n",
       "Q 29.828125 30.171875 32.03125 29.5625 \n",
       "Q 34.234375 28.953125 36.296875 28.09375 \n",
       "Q 38.375 27.25 40.203125 26.09375 \n",
       "Q 42.046875 24.953125 43.40625 23.34375 \n",
       "Q 44.78125 21.734375 45.578125 19.578125 \n",
       "Q 46.390625 17.4375 46.390625 14.59375 \n",
       "z\n",
       "\" id=\"LiberationSans-115\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(196.582098 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_4\">\n",
       "   <g id=\"patch_17\">\n",
       "    <path d=\"M 265.474286 106.564607 \n",
       "L 337.217143 106.564607 \n",
       "L 337.217143 34.82175 \n",
       "L 265.474286 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pda3ff5317a)\">\n",
       "    <image height=\"72\" id=\"image1fbad78ede\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"265.474286\" xlink:href=\"data:image/png;base64,\n",
       "iVBORw0KGgoAAAANSUhEUgAAAEgAAABICAYAAABV7bNHAAAK+0lEQVR4nN1cS28UVxM9/bzdPTP4ycRBASSyidiwhjX7/Nis2bBPxCKKBMoCgqWxA/Pq6eftVxb+zuVO2wP5lLkt2SWNkD3Tpu9x1amqU9W2uq7rYNjqukZVVSiKAr/88gtev36Ns7MzPHv2DMfHx3j69CnOzs5gWda1a9M0xatXr/DmzRv1vcPDQ/z888949OjRjdfs01yjP71nXdehbVt0XYemadA0Dbquw7d+R/pneK3+nkmQBgGoLEtcXl5ivV7jjz/+wO+//46HDx/CcRwcHx/j4cOH+P7772+8tm1bfPz4EX/++SeqqkJVVTg4OMCLFy9w//592LYN3/dh27aRex8EoDRN8e7dO5yfn+PNmzf47bffcH5+jizLMJ1O8eLFi53XNk2DDx8+4Ndff0WapojjGCcnJ3j58iUeP36MMAzheZ6xezcDe8/atoWUElJKVFWFpmkUL/Hrb11f17W6pq5rFEWhrjVJo4MA1HWdOphlWXBdF47joG1btG37zesdx4EQAr7vQwgB13WR5znSNEVRFHcDoLZt0TSNAsiyrC3i/epN2rYC1fM8OI6jsmJd10bvfTCS/uuvv3BxcYE0TWHbNhzHAbAbHGaupmkUGMx8TdOgLEvkeQ4ppVEPGgSgJEnw9u1b/P3331gul/A8T2WdXWmeHldVlQKjqirljUmSYLlcYjwe3/4Qa5oGRVEgTVPFQwyxrx2OYPClh2RVVZBS3g2SrusaaZpitVqhbVs4jgPLsrYO3j8kMxczH8mc10opsV6vUZal0XsfzIPSNEWapmjbdoukd/32GWJ1XW+BSO+rqgpZlhnnoEEAsm0bQRAgCAJFzjzoLtsVXjQCaLqVHAQgz/Nw7949nJycIAgClcVs297ZInRdpwpDHQgCy+LzW0Xmf7VBALIsa6uW0T3n35B0/2cBUF71bwrN/2KDFYokXMuytoq9uq5vBIk1kB5e9B7bttX7dyLEdMK1bRue58GyLDRNs5NkdQ4CcI2v+N6dSPMArnkCveDf1EL6Z+4kB+ktg96L6aJZ//P9LEZPcl0Xtm2jKAqs12tsNpvb70F9L9Cz1//jPcAXDyLgd6JZtSwLjuPAdV3V0ROkm2ohnYz1z3met1VP7bp+n2YcIFa/JGddU+b3d4HUr5dc10UYhoiiSIWaKamVNphoT6/wfR8AlIRRluWNRKuHFcERQmA8HiOKIgRBoES0Wy3aExiCMx6PIYTAYrHA+fk54jjGer3e8ioemPzj+z7CMMTZ2RkeP36MKIrwww8/4OTkBNPp1KgXDcZBfAVBgCiKkCQJiqKAlBJlWW41o/QeZi7btiGEwGQywdHREaIowtHREY6PjxFFkdF7HwQgIQSm0ymiKMJ0OsXBwQFGoxHm87nynCzLFAnbtq0kkiRJYNs2wjDE6ekpfvrpJ0wmE5yeniIMQ0wmk9vvQVEU4ccff0Se53jy5Anu37+Pjx8/oq5rlGUJy7JweXmJ8XisZl1FUeDz58+Yz+cAgHv37uHRo0d4/vw5oihSHjkej28/QJQ7gCuwhBAIwxCj0Qiu66LrOhRFAd/3VXjpujNwpQj4vq9eNMonpmwQgBzHwWg0gmVZymts28Z0OkVVVQCA5XKpWggAKIoC79+/x2q1guM4ODo6guM4yLIMwBVgrmv+9gfzICGE6scYVoeHh6rVWCwWCIJAAVSWJT5//qymIFEUwXEcdS1rpDvRzQPYqob50rVpfcJKUT5JEqRpeq36pq7EItKkDVYo8kBBECAMQ3Rdp1oPTj041gGustpsNoOUUk1TOVkVQlwD2ZQNuv6i91Z6i3GTOqiDxjma7kV3ohfTCz4uL7Rte60ZZcGYZZm6hmm+rmvVe+keQ5BMA2Scg+gZnG/poxt6AUc4eZ4rgPI8x+XlJebzuQpHepLewH5rOvJfzShAup7DQeBNYxzyk17T6J8HsKUf9cdBt3I2rx9E79zzPEcYhqr+4WoLAFUhA1A7QAwjXcfmAKBt29udxfoedJPQzlBj4ad38roMchOh96ceJswY/LoOTS2a3sCXnqr74pf+OU4/yGN66Jk2oyHGDQwppSrwCAK/JgD9cNHJWF+DkVKqsDRN0MAAJM3D960vt/bJVl8X1kP1ppA1acY9iDWOfhjOxPQts/4yJwtFCmh9gs6yDHVdKzXA1L60UZLmgXRS1sNIbzb7n2NYEUyanhkJ7K0kaQA7w6L/vr7iq79HMmY4Al9A72+c6f/u04yGmJ6OdxWJ9AISsN6ecCjIDNh13Rbhc5XYZIgNJnd8jWhJxiR0AtqfxuoZrz91NRVmg3IQvYWvsiy3quzNZoP1eo2u67BcLlV4UeqgmC+lVPVTP8vt24uMAtSvdvUspD+KwOIvz3NsNhsAV8936N7DjFfXtQqtPjgmzDgH8RDkDb7HYo9dOpXFPM/huq6alen6DwtHvSLv/5/7NqMeRC9p2xa+76NpGkW2nudhNBqh6zrM53Mle3z69EmtDPPADLG+isjMRi4z0bgOsrwAbFfOuuAFfNl91rOUvtZyk+5jusWgGQWIKy9c/OacfTweq9Di3jRNF9IYVvpmvp7t9MrclPxqDCB9s5XzMADwfR9RFCkAuHmvX8P3XNdVDa6uE+lb+vp1Jsx4L8ZUThDYJtBTmqZBlmVKj57NZhBCII5jlamoCBRFgTzP0TSNWqIyXSgaA6htW8RxjIuLC6UiAldi/Gq1Ur/1qqowm80wm83Qti3evXuHtm3x9u1blGUJz/Ow2Wwwn8/V82FUIDmyZtjdKoCAqyUpDv7IJSwMAaiv8zxHnucoyxKr1QpSSiwWC+Ud1JU4V9OHAKZroUEkVyklkiRRTakua9R1jYuLCyyXS0gpsdlsFF+NRiMEQYCyLJEkCbIsQxzHqqq2bRunp6cAcPtIGvgCEMOKnpEkyVZTenl5iU+fPinOYosxmUwghFBtCIEOwxBBEMD3faUZmVIXB5mscpWlKApkWYY0TbcWwnWxTB/v6ERO8Ph8GDfTdj3KsC8bpFBM0xSz2Qx5nqtwYroHroaEBINLmUzjfKZjs9mgKArEcQwhBJbLJYQQmM/nRudjgz3UmyQJkiTBYrHAarXaaj2klACw9VcU9PaB3kUPYs+WZRmKojA6+jFaB5VlqR6b7E9C+7oQ5dX+aJlgsIrWpQ8AKguy4d33xplRgOI4VqTMdKwP/lgJswjUl6KoGAJXT01LKVVYCiFU1iKBs67S1/P2YcazWH8SCmy3Bl+TLAiWPuLpZyyu9HFysm8zClAURRiPx1gsFojjGFmWqX1FLmVyd5oHZkHp+z5GoxGqqkIcx0pF5JY9px1lWWKxWKCua0wmk723HEabVe49W5al+ijuPDNjATcLXXwuQ+/UGUI6B0kpsVwuAWBrKrIvMy53sG9K0xSbzQa+7yupg/s+UkqV6oUQqpMngLxGb0757Ibv+0Z3FY16UBAEODg4gGVZSikMw1DtSevgrddruK6L4+Pjrad6fN/HZDJB0zSqNGjbFmEY4vDwEJPJRHnUraukeVBdJqUI5rqu4hIe0PM8BR6f5iFnUTLRl8n1J370vwey1zPs/Sf+zxzHwXfffacOt16vtzyIhGvbturkXdfFZDKB53nKg9q2xWazUS0Gue3Bgwc4PT3F0dERHjx4ACGEWlbfpxkFiCHQdZ3qxlnHkGP0A9Gr+suZ/drJsiyMRiMIIXBwcIDpdLq1WrNPG+R5MX31V6+S+7yx6/vA9UzXr4dMdfP/APEJP2lT9bdhAAAAAElFTkSuQmCC\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_18\">\n",
       "    <path d=\"M 265.474286 106.564607 \n",
       "L 265.474286 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_19\">\n",
       "    <path d=\"M 337.217143 106.564607 \n",
       "L 337.217143 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_20\">\n",
       "    <path d=\"M 265.474286 106.564607 \n",
       "L 337.217143 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_21\">\n",
       "    <path d=\"M 265.474286 34.82175 \n",
       "L 337.217143 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_4\">\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(282.673527 15.89625)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(282.673527 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_5\">\n",
       "   <g id=\"patch_22\">\n",
       "    <path d=\"M 351.565714 106.564607 \n",
       "L 423.308571 106.564607 \n",
       "L 423.308571 34.82175 \n",
       "L 351.565714 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#pe5e3822040)\">\n",
       "    <image height=\"72\" id=\"imageec3f4e5c4d\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"351.565714\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_23\">\n",
       "    <path d=\"M 351.565714 106.564607 \n",
       "L 351.565714 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_24\">\n",
       "    <path d=\"M 423.308571 106.564607 \n",
       "L 423.308571 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_25\">\n",
       "    <path d=\"M 351.565714 106.564607 \n",
       "L 423.308571 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_26\">\n",
       "    <path d=\"M 351.565714 34.82175 \n",
       "L 423.308571 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_5\">\n",
       "    <!-- shirt -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(376.102768 15.89625)scale(0.12 -0.12)\">\n",
       "     <defs>\n",
       "      <path d=\"M 15.484375 43.796875 \n",
       "Q 16.9375 46.484375 18.640625 48.359375 \n",
       "Q 20.359375 50.25 22.40625 51.46875 \n",
       "Q 24.46875 52.6875 26.90625 53.25 \n",
       "Q 29.34375 53.8125 32.375 53.8125 \n",
       "Q 37.453125 53.8125 40.703125 52.4375 \n",
       "Q 43.953125 51.078125 45.828125 48.609375 \n",
       "Q 47.703125 46.140625 48.40625 42.71875 \n",
       "Q 49.125 39.3125 49.125 35.203125 \n",
       "L 49.125 0 \n",
       "L 40.28125 0 \n",
       "L 40.28125 33.5 \n",
       "Q 40.28125 36.859375 39.859375 39.390625 \n",
       "Q 39.453125 41.9375 38.28125 43.625 \n",
       "Q 37.109375 45.3125 34.953125 46.15625 \n",
       "Q 32.8125 47.015625 29.390625 47.015625 \n",
       "Q 26.265625 47.015625 23.75 45.890625 \n",
       "Q 21.234375 44.78125 19.453125 42.71875 \n",
       "Q 17.671875 40.671875 16.6875 37.734375 \n",
       "Q 15.71875 34.8125 15.71875 31.15625 \n",
       "L 15.71875 0 \n",
       "L 6.9375 0 \n",
       "L 6.9375 72.46875 \n",
       "L 15.71875 72.46875 \n",
       "L 15.71875 53.609375 \n",
       "Q 15.71875 52 15.671875 50.390625 \n",
       "Q 15.625 48.78125 15.546875 47.40625 \n",
       "Q 15.484375 46.046875 15.421875 45.09375 \n",
       "Q 15.375 44.140625 15.328125 43.796875 \n",
       "z\n",
       "\" id=\"LiberationSans-104\"/>\n",
       "      <path d=\"M 6.6875 64.0625 \n",
       "L 6.6875 72.46875 \n",
       "L 15.484375 72.46875 \n",
       "L 15.484375 64.0625 \n",
       "z\n",
       "M 6.6875 0 \n",
       "L 6.6875 52.828125 \n",
       "L 15.484375 52.828125 \n",
       "L 15.484375 0 \n",
       "z\n",
       "\" id=\"LiberationSans-105\"/>\n",
       "     </defs>\n",
       "     <use xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"50\" xlink:href=\"#LiberationSans-104\"/>\n",
       "     <use x=\"105.615234\" xlink:href=\"#LiberationSans-105\"/>\n",
       "     <use x=\"127.832031\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"161.132812\" xlink:href=\"#LiberationSans-116\"/>\n",
       "    </g>\n",
       "    <!-- shirt -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(376.102768 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"50\" xlink:href=\"#LiberationSans-104\"/>\n",
       "     <use x=\"105.615234\" xlink:href=\"#LiberationSans-105\"/>\n",
       "     <use x=\"127.832031\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"161.132812\" xlink:href=\"#LiberationSans-116\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       "  <g id=\"axes_6\">\n",
       "   <g id=\"patch_27\">\n",
       "    <path d=\"M 437.657143 106.564607 \n",
       "L 509.4 106.564607 \n",
       "L 509.4 34.82175 \n",
       "L 437.657143 34.82175 \n",
       "z\n",
       "\" style=\"fill:#eaeaf2;\"/>\n",
       "   </g>\n",
       "   <g clip-path=\"url(#p3d01b70c72)\">\n",
       "    <image height=\"72\" id=\"image0e8a308319\" transform=\"scale(1 -1)translate(0 -72)\" width=\"72\" x=\"437.657143\" xlink:href=\"data:image/png;base64,\n",
       "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\" y=\"-34.564607\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_28\">\n",
       "    <path d=\"M 437.657143 106.564607 \n",
       "L 437.657143 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_29\">\n",
       "    <path d=\"M 509.4 106.564607 \n",
       "L 509.4 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_30\">\n",
       "    <path d=\"M 437.657143 106.564607 \n",
       "L 509.4 106.564607 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"patch_31\">\n",
       "    <path d=\"M 437.657143 34.82175 \n",
       "L 509.4 34.82175 \n",
       "\" style=\"fill:none;\"/>\n",
       "   </g>\n",
       "   <g id=\"text_6\">\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(454.856384 15.89625)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "    <!-- trouser -->\n",
       "    <g style=\"fill:#262626;\" transform=\"translate(454.856384 28.82175)scale(0.12 -0.12)\">\n",
       "     <use xlink:href=\"#LiberationSans-116\"/>\n",
       "     <use x=\"27.783203\" xlink:href=\"#LiberationSans-114\"/>\n",
       "     <use x=\"61.083984\" xlink:href=\"#LiberationSans-111\"/>\n",
       "     <use x=\"116.699219\" xlink:href=\"#LiberationSans-117\"/>\n",
       "     <use x=\"172.314453\" xlink:href=\"#LiberationSans-115\"/>\n",
       "     <use x=\"222.314453\" xlink:href=\"#LiberationSans-101\"/>\n",
       "     <use x=\"277.929688\" xlink:href=\"#LiberationSans-114\"/>\n",
       "    </g>\n",
       "   </g>\n",
       "  </g>\n",
       " </g>\n",
       " <defs>\n",
       "  <clipPath id=\"pc960e4cc42\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"7.2\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p211b5f6677\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"93.291429\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p67ab145f8c\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"179.382857\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pda3ff5317a\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"265.474286\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"pe5e3822040\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"351.565714\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       "  <clipPath id=\"p3d01b70c72\">\n",
       "   <rect height=\"71.742857\" width=\"71.742857\" x=\"437.657143\" y=\"34.82175\"/>\n",
       "  </clipPath>\n",
       " </defs>\n",
       "</svg>\n"
      ],
      "text/plain": [
       "<Figure size 648x108 with 6 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from softmax_regression_scratch import predict_ch3\n",
    "predict_ch3(net, test_iter)"
   ]
  }
 ],
 "metadata": {
  "celltoolbar": "幻灯片",
  "hide_input": false,
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.6.8"
  },
  "latex_envs": {
   "LaTeX_envs_menu_present": true,
   "autoclose": true,
   "autocomplete": true,
   "bibliofile": "biblio.bib",
   "cite_by": "apalike",
   "current_citInitial": 1,
   "eqLabelWithNumbers": true,
   "eqNumInitial": 1,
   "hotkeys": {
    "equation": "Ctrl-E",
    "itemize": "Ctrl-I"
   },
   "labels_anchors": false,
   "latex_user_defs": false,
   "report_style_numbering": false,
   "user_envs_cfg": false
  },
  "rise": {
   "autolaunch": false,
   "enable_chalkboard": true,
   "scroll": true
  },
  "toc": {
   "base_numbering": 1,
   "nav_menu": {},
   "number_sections": true,
   "sideBar": true,
   "skip_h1_title": false,
   "title_cell": "Table of Contents",
   "title_sidebar": "Contents",
   "toc_cell": false,
   "toc_position": {},
   "toc_section_display": true,
   "toc_window_display": false
  },
  "vscode": {
   "interpreter": {
    "hash": "34418ffb6f02e522390adb0e13441cc75f901cd11cccb4f6f613643b4b4d2a0b"
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 5
}
